• 締切済み

system.exit(0)について

GUIを使ってフレームにパネルのっけて、ボタンを押すとそのフレームが開くようにしました。 で消すときにsystem.exit(0)を実行するとそのプログラム自体が終了してしまうじゃないですか?そうではなくて、そのフレームだけが閉じるようにするメソッドはないのですか?単に、setVisible(false)にするしか方法はないのですか?教えて

  • Java
  • 回答数2
  • ありがとう数1

みんなの回答

回答No.2

JFrameを使っているとしたらコンストラクタ内で何も ×ボタンについて何も宣言しなければ、消せます。 setDefaultCloseOperation(JFrame.DISEPOSE_ON_CLOSE)と宣言しても、同じことはできます。

参考URL:
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/javax/swing/JFrame.html
  • bgbg
  • ベストアンサー率53% (94/175)
回答No.1

その通りです。

関連するQ&A

  • System.exit(0);について

    System.exit(0);について mainフレームから呼び出した子フレームをexit(0)で消すとどちらのフレームも消えてしまいます。 mainフレームを消さない方法を探しているのですが見つかりません。 ただし、this.etDefaultCloseOperation(JFrame.DISEPOSE_ON_CLOSE);で×を押して消すのではなく、終了ボタンを付けて、actionPerformed内で終了したいです。 また、setVisible(false);のように、メモリが残った状態にもしたくありません。 (メモリが残らないように子フレームを消したいです。) ご存知の方おられましたら教えてください。よろしくお願いいたします。

    • ベストアンサー
    • Java
  • System.exit()の値を取得したい

     今日は、JAVA初心者です、宜しくお願いします。  プログラムの終了時の結果を System.exit()で取得したいのですが、どのようなメソッドが あるのでしょうか。  宜しくお願いします。

    • ベストアンサー
    • Java
  • Perlのexitについて

    こんにちは、現在シェルスクリプトからperlを呼び出し、 その実行結果を受け取るというシンプルな所で悩んでいます。 Perlからプログラムの終了時にexitで 値を返しているのですが、どの値を返しても0が返ってきます。 受け取り側はシェルスクリプトです。 exitには何か特殊な要素があるのでしょうか? ご存知の方がいたらご教授下さい。 よろしくお願いします。 # #perlのソース #(i=0の場合・i=1の場合) # if(i == 1) { exit 1; } exit 0;

    • ベストアンサー
    • Perl
  • VBA イベント Exit時にボタンを有効にしたい

    VBAで イベント _Exit(ByVal Cancel As MSForms.ReturnBoolean)が有効(Cancel=True)の場合、ボタンが有効にならない。 例えば、「閉じる」ボタンを押下するとフォームを閉じたいが _Exitの処理が実行される。 _Exit処理を強制終了し ボタンを有効にできるでしょうか?

  • Linuxでexit()をフックするには?

    glib内のある関数のパフォーマンスを調べるために、 ログを埋め込もうとしています。 手法としては、あらかじめメモリ領域を確保しておき、 glibc内でメモリ上にログを吐き出し、 glicを使用するアプリケーション終了時(exitシステムコール実行時)に、 ログを出力しようと思います。 そこで質問なのですが、 Linuxのglibc(2.3.3)でexit()をフックして、 自前の関数を呼び出す方法はありますか? ご存知なら教えてください。

  • ダイアログ

    今、テキストエディタを作ろうと試みております。(プログラムは、はじめたばかりで、まだままなりませんが。) メニューをフレームに付け、そのサブメニューのひとつをクリックすると、ダイアログを作って表示するメソッドを作り、それを呼び出して表示するようにしました。そのダイアログが閉じるボタンから閉じられません。 addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent ev) { System.exit(0); } }); これをダイアログを作るメソッドの中に書いたら、閉じられると思ったんですが、できませんでした。何か、他のところに問題があるのでしょうか? わかりにくい質問になってしまいすみません。

  • javaのフレームにサイズがセットされてない?

    前回、http://okwave.jp/qa/q8069621.htmlで質問しました。 回答をもとにframe.setvisible(true)をコンストラクタの最後にするとうまくいき回答を締め切ったんですが・・・。 しかし、mainメソッドにframe.setvisible(true)を書くとフレームのタイトル部分だけとなり、 サイズがセットされないまま実行したときと同じようになってしまいます。 なぜでしょう?よろしくお願いします。 import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class Table0{ public static void main(String[] args) { Frame0 test=new Frame0(); test.setVisible(true); } } class Frame0 extends JFrame{ JFrame frame; JPanel panel; JScrollPane jsp; JTable table; DefaultTableModel dtm; public Frame0(){ frame=new JFrame("table"); frame.setBounds(30, 30, 300, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); table=new JTable(8,5); jsp=new JScrollPane(table); jsp.setPreferredSize(new Dimension(250, 70)); panel=new JPanel(); panel.add(jsp); Container c=frame.getContentPane(); c.add(panel,BorderLayout.CENTER); } }

    • ベストアンサー
    • Java
  • システムに負荷を掛けないプログラムの閉じ方

    システムに負荷を掛けないプログラムの閉じ方 プログラムを閉じる時に×ボタンを使うとシステムに負荷を掛ける為、閉じるボタンがある時は閉じるボタンを使い、ない時はファイルメニューから終了を選ぶと負荷を掛けずに閉じられると聞きました。 これって本当でしょうか? Windows3.0や3.1の時にはウィンドウ左上をクリックして閉じていましたが、この方法でもシステムに負荷を掛けずにプログラムを閉じる事ができるのでしょうか。

  • システムの復元が出来ません。

    システムの復元が出来ません。 「コントロールパネル」の「システム」をクリックし、「システムの復元」をクリックすると "C:\WINDOWS\system32\shell32.dll,Control_RunDLL"C:\WINDOWS\system32\sysdm.cpl",システム"の実行中に、例外が発生しました。 というメッセージが出て、[OK]をクリックすると何もしないで終了します。(注:[OK]ボタンしか無い) これを修復する方法が分かりましたら、教えて下さい。今すぐ「システムの復元」をする必要は無いのですが、気になるので修復したいと思います。よろしくお願いします。 OSは Windows XP SP3 です。

  • SwingでgetContentPaneのエラーです、お願いします

     今晩は、java勉強中のものです、宜しくお願いします。  下のようなプログラムを組んでみましたが、「型JFrameから非staticメソッドgetContentPane()にstatic参照 することは出来ません」というエラーコードです。  原因が良く分かりません、どなたか教えて下さい。  いくら考えても原因がよく分かりません、宜しくお願いします。 ================================================================ public class Panel_train extends JFrame{ public static void main(String[] args) { Container cnt = getContentPane(); JPanel jpanel = new JPanel(); JTextArea jtext = new JTextArea("Hello World", 100, 50); jpanel.add(jtext); cnt.add(jpanel, BorderLayout.CENTER); JFrame frame = new JFrame("テスト"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(200, 100); frame.setVisible(true); } }

    • ベストアンサー
    • Java

専門家に質問してみよう