java關閉窗口,java關閉窗口方法

本文目錄一覽:

java關閉當前窗口代碼

方法一:

類 JFrame

javax.swing.JFrame

JFrame中的方法void setDefaultCloseOperation(int)可以設置

以下為改方法的用法:

setDefaultCloseOperation

public void setDefaultCloseOperation(int operation)設置用戶在此窗體上發起

“close” 時默認執行的操作。必須指定以下選項之一:

DO_NOTHING_ON_CLOSE(在 WindowConstants 中定義):不執行任何操作;要求程序在已註冊的

WindowListener 對象的 windowClosing 方法中處理該操作。

HIDE_ON_CLOSE(在 WindowConstants 中定義):調用任意已註冊的 WindowListener

對象後自動隱藏該窗體。

DISPOSE_ON_CLOSE(在 WindowConstants 中定義):調用任意已註冊 WindowListener

的對象後自動隱藏並釋放該窗體。

EXIT_ON_CLOSE(在 JFrame 中定義):使用 System exit

方法退出應用程序。僅在應用程序中使用。

默認情況下,該值被設置為 HIDE_ON_CLOSE。更改此屬性的值將導致激發屬性更改事件,其屬性名稱為

“defaultCloseOperation”。

註:當 Java 虛擬機 (VM) 中最後一個可顯示窗口被釋放後,虛擬機可能會終止

要實現你說的,應該採用

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

方法二:

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

public class Test extends JFrame {

public Test(){

this.setTitle(“title”);

this.setSize(300,200);

this.setLocation(100,100);

//設置關閉時什麼也不做

this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);

//監聽關閉按鈕的點擊操作

this.addWindowListener(new WindowAdapter(){

//new 一個WindowAdapter 類 重寫windowClosing方法

//WindowAdapter是個適配器類 具體看jdk的幫助文檔

public void windowClosing(WindowEvent e) {

//這裡寫對話框

if(JOptionPane.showConfirmDialog(null,

“退出”,”提

示”,JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION){

System.exit(0);

}

}

});

this.setVisible(true);

}

public static void main(String[] args) {

new Test();

}

}

java程序關閉窗口代碼

import java.applet.*;

import java.awt.Color;

import java.awt.Frame;

import javax.swing.JFrame;

import java.awt.event.*;

public class FirstFrame extends Frame {

public static void main(String args[]) {

FirstFrame fr = new FirstFrame(“First contianer!”);

fr.setSize(240, 240);

//繼承JFrame的關閉窗口代碼

//fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//繼承Frame的

fr.addWindowListener(new WindowAdapter() {    

    public void windowClosing(WindowEvent e) {        

        System.exit(0);//退出系統   

    }

});

fr.setVisible(true);

}

public FirstFrame(String str) {

super(str);

}

}

JAVA如何用按鈕關閉窗體

很久沒有用過界面編程了,就當複習一下了,哈哈

如一樓所說的,給按鈕加一個監聽器ActionListener,寫一個實現方法

actionPerformed.此時當按鈕點擊時會調用actionPerformed方法,代碼如下:

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Close extends JFrame implements ActionListener{

JButton close;

public Close(){

close = new JButton(“close”);//增加一個按鈕

add(close);

close.addActionListener(this);//給按鈕增加一個監聽器

setLayout(new FlowLayout());

setSize(200,100);

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

//捕捉到按鈕點擊時的事件處理方法

//按鈕點擊時一定會自動執行actionPerformed(ActionEvent e)方法

public void actionPerformed(ActionEvent e){

//關閉整個應用程序.如果只是是想關閉當前窗口,可以用

//dispose();

System.exit(0);

}

public static void main(String[] args){

new Close();

}

}

java中關閉窗口的方法

1 package applicationGraphicsInOut;

2 import java.awt.*;

3 import java.awt.event.*;

4 public class ApplicationGraphicsInOut {

5 public static void main(String args[])

6 {

7 new FrameInOut();

8 }

9

10 }

11 class FrameInOut extends Frame implements ActionListener

12 {

13 Label prompt;

14 TextField input,output;

15 FrameInOut()

16 {

17 super(“圖形界面的Java Application程序”);

18 prompt=new Label(“請輸入您的名字”);

19 input=new TextField(6);

20 output=new TextField(20);

21 setLayout(new FlowLayout());

22 add(prompt);

23 add(input);

24 add(output);

25 input.addActionListener(this);

26 setSize(300,200);

27 setVisible(true);

28 }

29 public void actionPerformed(ActionEvent e)

30 {

31 output.setText(input.getText()+”,歡迎你”);

32 }

33 }

該程序在Eclipse下運行通過,但是就是不能關不掉!

什麼原因呢?

其中有以下幾種解決方法:

1:

把main函數改為如下

1 public static void main(String args[])

2 {

3 Frame fr=new FrameInOut();

4 fr.addWindowListener(new java.awt.event.WindowAdapter()

5 {

6 public void windowClosing(java.awt.event.WindowEvent e)

7 {

8 System.exit(0);

9 }

10 });

11

12 }

這種方法我有點不解,addWindowListener()括號里是怎麼回事,我有點納悶,我還沒見過這樣的形式,不過我猜可能是實現了java.awt.event.WindowAdapter()類裡面的一個抽象方法windowClosing(),但是我真沒有見過這種格式,求解釋。

2:

對WINDOWS_CLOSING事件做出響應,每個窗口都有3個控制圖標,其中最小化和最大化操作Frame可自動完成,而關閉窗口的操作不能通過單擊關閉圖標實現,需要程序專門書寫有關的代碼,其實這種方法與上一種一樣,則不過換了一種格式,一種初學者更明白易懂的格式。

在FrameInOut()構造函數裡面添加監聽函數,添加監聽函數之後構造函數如下:

FrameInOut()

{

super(“圖形界面的Java Application程序”);

prompt=new Label(“請輸入您的名字”);

input=new TextField(6);

output=new TextField(20);

setLayout(new FlowLayout());

addWindowListener(new HandleWin()); //添加監聽函數,引發WindowEvent事件

add(prompt);

add(input);

add(output);

input.addActionListener(this);

setSize(300,200);

setVisible(true);

}

其中HandleWin()為內部類,主要實現WindowListener借口,添加監聽之後會引發WindowEvent類代表的所以七中事件,具體情況如下:

(1)WINDOW_ACTIVATED:代表窗口被激活(在屏幕的最前方待命)。

(2)WINDOW_DEACTIVATED:代表窗口失活(其他窗口被激活後原活動窗口失活)。

(3)WINDOW_OPENED:代表窗口被打開。

(4)WINDOW_CLOSED:代表窗口被關閉(關閉窗口後發生)。

(5)WINDOW_CLOSING:代表窗口正在被關閉(指關閉前。如單擊窗口標題欄上的關閉按鈕時)。

(6)WINDOW_ICONIFIED:代表使窗口最小化成圖標。

(7)WINDOW_DEICONIFIED:代表使窗口從圖標恢復

在WindowEvent類的主要方法有:

public window getWindow();

此方法返回引發當前WindowEvent事件的具體窗口對象,與getSource()方法返回的是相同的事件引用。

HandleWin定義如下:

class HandleWin extends WindowAdapter

{

public void windowClosing(WindowEvent e)

{

(e.getWindow()).dispose();

System.exit(0);

}

}

HandleWin是窗口事件的裁剪類WindowAdapter的子類,重載了WindowClosing()方法。

當然也可以這樣寫HandleWin

1 class HandleWin implements WindowListener

2 {

3 public void windowClosing(WindowEvent e)

4 {

5 (e.getWindow()).dispose();

6 System.exit(0);

7 }

8

9 @Override

10 public void windowActivated(WindowEvent arg0) {

11 // TODO Auto-generated method stub

12

13 }

14

15 @Override

16 public void windowClosed(WindowEvent arg0) {

17 // TODO Auto-generated method stub

18

19 }

20

21 @Override

22 public void windowDeactivated(WindowEvent arg0) {

23 // TODO Auto-generated method stub

24

25 }

26

27 @Override

28 public void windowDeiconified(WindowEvent arg0) {

29 // TODO Auto-generated method stub

30

31 }

32

33 @Override

34 public void windowIconified(WindowEvent arg0) {

35 // TODO Auto-generated method stub

36

37 }

38

39 @Override

40 public void windowOpened(WindowEvent arg0) {

41 // TODO Auto-generated method stub

42

43 }

44 }

關於java窗口關閉的問題

我碰見的有兩種情況子窗口關閉導致父窗口也關閉!下面簡單介紹一下。。

一種是常規的,java原裝類庫引起的最常見的:

[java] view plain copy

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

public class ParentFrame extends JFrame implements ActionListener {

private JButton jb = new JButton(“顯示子窗口”);

public ParentFrame() {

super(“父窗口”);

this.add(jb);

jb.addActionListener(this);

this.setBounds(100, 100, 200, 300);

this.setVisible(true);

this.setDefaultCloseOperation(HIDE_ON_CLOSE);

}

@Override

public void actionPerformed(ActionEvent e) {

new ChildFrame();

}

public static void main(String[] args) {

new ParentFrame();

}

}

import javax.swing.JFrame;

public class ChildFrame extends JFrame {

public ChildFrame() {

super(“子窗口”);

this.setBounds(200, 200, 200, 300);

this.setVisible(true);

this.setDefaultCloseOperation(HIDE_ON_CLOSE);

}

public static void main(String[] args) {

new ChildFrame();

}

}

這種情況是setDefaultCloseOperation()參數選擇的問題。

EXIT_ON_CLOSE做參數的時候使用的是System.exit方法退出應用程序。故會關閉所有窗口。

而HIDE_ON_CLOSE參數表示調用已註冊的WindowListener對象後自動隱藏窗體。

第二種是用地方放類庫jfreeChart,在做圖標的時候出現的。下面舉例

[java] view plain copy

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

public class ParentFrame extends JFrame implements ActionListener {

private JButton jb = new JButton(“顯示子窗口”);

public ParentFrame() {

super(“父窗口”);

this.add(jb);

jb.addActionListener(this);

this.setBounds(100, 100, 200, 300);

this.setVisible(true);

this.setDefaultCloseOperation(HIDE_ON_CLOSE);

}

@Override

public void actionPerformed(ActionEvent e) {

new ChildFrame();

}

public static void main(String[] args) {

new ParentFrame();

}

}

import javax.swing.JFrame;

public class ChildFrame extends ApplicationFrame {

public ChildFrame() {

super(“子窗口”);

this.setBounds(200, 200, 200, 300);

this.setVisible(true);

this.setDefaultCloseOperation(HIDE_ON_CLOSE);

}

public static void main(String[] args) {

new ChildFrame();

}

}

注意第二種情況,不管怎麼setDefaultCloseOperation都會全關閉,因為子窗口是繼承了ApplicationFrame即整個應用。故所有父窗口都會關閉。

java的命令行窗體怎麼關閉

process.destroy();

cmd

/c

dir

是執行完dir命令後封閉命令窗口。

cmd

/k

dir

是執行完dir命令後不封閉命令窗口。

cmd

/c

start

dir

會打開一個新窗口後執行dir指令,原窗口會封閉。

cmd

/k

start

dir

會打開一個新窗口後執行dir指令,原窗口不會封閉。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/249326.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 17:10
下一篇 2024-12-12 17:10

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • 解決.net 6.0運行閃退的方法

    如果你正在使用.net 6.0開發應用程序,可能會遇到程序閃退的情況。這篇文章將從多個方面為你解決這個問題。 一、代碼問題 代碼問題是導致.net 6.0程序閃退的主要原因之一。首…

    編程 2025-04-29
  • ArcGIS更改標註位置為中心的方法

    本篇文章將從多個方面詳細闡述如何在ArcGIS中更改標註位置為中心。讓我們一步步來看。 一、禁止標註智能調整 在ArcMap中設置標註智能調整可以自動將標註位置調整到最佳顯示位置。…

    編程 2025-04-29
  • Python創建分配內存的方法

    在python中,我們常常需要創建並分配內存來存儲數據。不同的類型和數據結構可能需要不同的方法來分配內存。本文將從多個方面介紹Python創建分配內存的方法,包括列表、元組、字典、…

    編程 2025-04-29
  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29

發表回復

登錄後才能評論