• ベストアンサー

Java Applicationの閉じる時のイベントについて

いつもお世話になっております。 JavaのApplicationをSwing等を用いて作っているのですが、 Applicationが×ボタンで閉じられた時に実行するようなメソッドを作りたいのですが、出来ますでしょうか。 実際には、 Applicationで色々操作した時の情報を閉じる時に保存したいのです。 よろしくお願いします。

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

質問者が選んだベストアンサー

  • ベストアンサー
  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.1

JFrameクラス、またはJFrameクラスを継承したクラスを使っているのであれば、 java.awt.event.WindowAdapterクラス(abstractクラスです)を継承したクラスを作成して、そのクラスのwindowClosing()メソッドにxボタンで閉じられた時の処理を実装(オーバーライド)して、JFrameクラスのaddWindowListener()メソッドを使ってリスナーを追加する方法があります。 処理として書くならば以下のような感じです、かなり簡素化していますが・・・。 ----- class MyWindowsListener extends WindwAdapter { public void windowClosing(WindowEvent e) { // ここに閉じる時の処理を記述 } } ----- ----- JFrame frame = new JFrame(); frame.addWindowListener(new MyWindowListener()); -----

take_july
質問者

お礼

ありがとうございました。 実現する事ができました。

関連するQ&A

  • JavaでGUIアプリケーション

    JavaでGUIのアプリケーションを作成するには以前であればSwingが良いようですが、現在は何が良いのでしょうか? 作りたいのはデスクトップアプリケーションです。 アマゾンではSwingの本は古いのしかないようですがどうなのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • javaでwindowsアプリケーション

    仕事でwebプログラマーをしていますが、最近趣味でwindowsのアプリケーションをつくろうと思っています。 言語はjava。 javaでも.NETのように、ウィンドウズ標準のボタンやメニューを使うことはできるのでしょうか? swingだとどうも標準のインターフェースじゃないので違和感を感じています。 そもそもwindowsのアプリケーション(テキストエディター等)て一般的には言語は何を使って開発するのでしょうか? ご教授いただければ幸いです。

    • ベストアンサー
    • Java
  • Javaアプリケーション内でコンパイルはできますか?

    Javaアプリケーションから、シェルにアクセスして、Javaプログラムをコンパイルおよび実行したいのですが、できますか? 具体的には、例えば、JavaアプリケーションのメインフレームにJavaプログラムを記述するテキストエリアがあってユーザはそこにJavaプログラムを記述し、任意の名前で保存できるとします。また、メインフレームには、コマンドを実行するテキストフィールドがあり、ユーザは保存したプログラムをそこからコンパイルできる。つまり、そのテキストフィールドに、 javac xxxxx.java と入力するとコンパイルでき、 java xxxxx とすると実行できる。 このようなことをしてみたいのですが、JavaアプリケーションからWindowsもしくはUNIXのシェルと連携させることはできますでしょうか?ご存知の方よろしくお願いします。

    • ベストアンサー
    • Java
  • java アプリケーションエラー

    javaのJDKをダウンロードしたのですが、ファイルに保存し実行しようとすれば アプリケーションエラー  java.lang.ArrayIndexOutOfBoundsException:8 と表示され上手くいきませんでした… どうすればいいのでしょう?

  • Javaアプリケーションのアイコン表示

    現在、awtとswingを使ったアプリケーションを作成中です。 そこで一つ質問ですが、 キーボードから[Alt]+[Tab]でアプリケーション切り替えの時に表示される、アイコンを変更したいのですが、なかなかうまくいきません。 現在、void javax.swing.JFrame.setIconImage(Image image)にアイコンを セットして、フレームのタイトルに16*16のアイコンを表示しているのですが、[Alt]+[Tab]でアプリケーション切り替え時のアイコンに、無理やり表示されてしまい、画像が荒く表示されます。 awt・swing上で、アプリケーション切り替え時の表示アイコンを変更する方法はないのでしょうか? どなたかご存知の方、よろしくお願いします。 ・環境 OS:WindowsXP プロフェッショナル JAVA:jre-1.5.0_06

    • ベストアンサー
    • Java
  • イベントとスレッド

    Java初心者です。 イベントとスレッドに関する質問です。 Swingを使ったアプリケーションを作成しているのですが、 以下のような現象が起きています。 1. ボタンが配置されているダイアログ(A)で、そのボタンを押下する。 2. ボタンを押下したときに実行されるメソッドで、スレッドを作成する。 3. その作成されたスレッドで、JOptionPane#showOptionDialogを実行して、ダイアログ(B)を表示する。 4.(B)が表示されている状態で、別のウィンドウで隠し、再度表示させると、(B)に配置されているボタンが押せなくなる。 4.で(B)のボタンを押せるようにしたいのですが、 うまくいきません。 スレッドとかイベントが関係していると思うのですが、 何しろ初心者なもので、よく理解していません。 実際のプログラムをお見せすることが出来ないので分かりずらいかもしれませんが、何かお気づきのことがあれば 教えて頂けないでしょうか? よろしくお願い致します。

    • ベストアンサー
    • Java
  • Javaアプリケーションとは?

    Java Runtime Environmenとは、どのような時に必要ですか? ソフト紹介サイト「窓の杜」では、http://www.forest.impress.co.jp/lib/arc/runtime/runtimeapp/javaruntime.html ”IEやNetscapeなどのWebブラウザーにはJavaランタイムが組み込まれているため、Webブラウザー上で動作する“Javaアプレット”と呼ばれるプログラムを実行する場合は必要ないが、Webブラウザーとは無関係に起動できる“Javaアプリケーション”と呼ばれるプログラムを実行する際に必要となる。”と書かれています。 Javaアプリケーションに必要と書かれていますが、具体的な例はありますか? よろしくお願いします。

    • ベストアンサー
    • Java
  • java アプリケーションをjava アプレットに

    java超初学者です。詳しいかたご教授願います。 java アプリケーションをjava アプレットに書き換えたいのですが、具体的にはどう書き換えを行ったらいいのか修正をお願いします。 (文字制限があるので、14個あるクラスファイルの中で(内1つはhtmlファイル)、メインメソッドを持つ実行クラスだけのせています。) Appletを継承させる、属性をメインクラスとコンストラクタはpublic にする、 mainメソッドを削除し、initメソッドへ書き換える、サイズ指定は<applet>タグで指定する。等調べましたが 具体的にわかりません。特にコンストラクタとメインメソッドの部分のアプレットへの書き換えがわかりませんでした。 宜しくお願い致します。 //実行クラスです。 import java.awt.*; import java.awt.event.*; /** *ゲームクラス(ここから始まる)<p> *画面の作成 */ public class Game extends Frame { /** * メインクラス */ public static void main(String args[]) { //フレームの作成 new Game(); } /** * 引数なしのコンストラクタ */ Game() { //*** ウィンドウの初期化 //タイトル super("Shooting Game"); //クローズボタンによる終了処理の実装 addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent evt) { System.exit(0); } }); setSize(500, 500); //ウィンドウのサイズ //*** キャンバスの初期化 MyCanvas mc = new MyCanvas(); add(mc); //フレームにキャンバスを追加 setVisible(true); //ウィンドウの表示 //ゲームデータの初期化 mc.init(); //スレッドを作成 mc.initThread(); } }

  • javaアプリケーションをHTML上から実行する

    JAVAアプレットの場合は、HTML上で実行するときに 目的のクラスファイルを<applet>タグで囲んで実行しますが、 これがJavaアプリケーションの場合、HTML上から Javaアプリケーションを実行することは可能なのでしょうか? また可能な場合は、どのようにしてJavaアプリケーションを 実行すればよろしいのでしょうか?

    • ベストアンサー
    • Java
  • Javaアプリケーションについて

    次のようなプログラムを作ってコンパイルをしました。 public class app { public static void main(String[] args) { System.out.println("Hello from Java!"); } } コンパイルまではできるのですが、 java appで実行しようとすると Exception in thread "main" java.lang.NoClassDefFoundError:app となって、アプリケーションを実行することができません。 本には、これで実行できると書いてあるのですが・・・ どなたか教えてください。

    • ベストアンサー
    • Java