JbuttonでGUIを閉じる方法を知っている人はいますか? System.CLOSE(0);
に似ていると思いますが、うまくいきませんでした。 exitActionPerformed(evt);
の場合もありますが、それも機能しませんでした。コードの行だけが機能します。
編集:みんな気にしないでください。答えはSystem.exit(0);
でした。助けてくれてありがとう!
ボタンを追加します。
JButton close = new JButton("Close");
ActionListenerを追加します。
close.addActionListner(new CloseListener());
ActionListenerインターフェースを実装するリスナーのクラスを追加し、そのメイン機能をオーバーライドします。
private class CloseListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
//DO SOMETHING
System.exit(0);
}
}
これは最善の方法ではないかもしれませんが、開始点です。たとえば、クラスは、別のクラス内のプライベートクラスとしてではなく、パブリックにすることができます。
JFrame.setDefaultCloseOperation(DISPOSE_ON_CLOSE)
を参照してください1。 EXIT_ON_CLOSE
。ただし、実行中のスレッドを明示的にクリーンアップすることをお勧めします。最後のGUI要素が見えなくなると、EDTとJREは終了します。
この操作を呼び出す「ボタン」はすでにフレーム上にあります。
DISPOSE_ON_CLOSE
機能。System.exit(0);を使用してプロセス全体を閉じます。それはあなたが望んでいたことですか、GUIウィンドウのみを閉じてプロセスの実行を許可するつもりでしたか?
JButtonのクリックでJFrameまたはJPanelを単純に閉じるための最も速く、最も簡単で堅牢な方法は、JButtonがクリックされたときに以下のコード行を実行するactionListenerをJButtonに追加することです。
this.dispose();
NetBeans GUIデザイナーを使用している場合、このactionListenerを追加する最も簡単な方法は、GUIエディターウィンドウに入り、JButtonコンポーネントをダブルクリックすることです。これを行うと、actionListenerとactionEventが自動的に作成され、ユーザーが手動で変更できます。
Java 8では、Lambda式を使用してより簡単にできます。
JButton btnClose = new JButton("Close");
btnClose.addActionListener(e -> System.exit(0));
JButton btnClose = new JButton("Close");
btnClose.addActionListener(e -> this.dispose());
Window#dispose() メソッドを使用して、すべてのネイティブ画面リソース、サブコンポーネント、および所有されているすべての子を解放できます。
System.exit(0)
は、現在実行中のJava仮想マシンを終了します。
メソッドを作成して呼び出し、JFrameを閉じます。次に例を示します。
public void CloseJframe(){
super.dispose();
}
JButton close = new JButton("Close");
close.addActionListener(this);
public void actionPerformed(ActionEvent closing) {
// getSource() checks for the source of clicked Button , compares with the name of button in which here is close .
if(closing.getSource()==close)
System.exit(0);
// This exit Your GUI
}
/*Some Answers were asking for @override which is overriding the method the super class or the parent class and creating different objects and etc which makes the answer too long . Note : we just need to import Java.awt.*; and Java.swing.*; and Adding this command : class className implements actionListener{} */