2012-04-09 6 views
0

MacのJavaアプリケーションでは、上部バーをクリックして終了を選択してプログラムを終了できます。これを聞くには、JFrameにリスナーを追加するにはどうすればよいですか?Java Swing - Macで終了イベントをリスンする

私はこれを検索してApplicationListenerを見つけましたが、Eclipseはこれに「クロスアウト」を入れ、その非推奨または何かを考えるようです。

具体的には、com.apple.eawt.ApplicationListenerを使用することが判明しましたが、どうすればよいですか?このcom.apple.eawtパッケージをダウンロードする必要はありますか?私はそれを見つけるように見えない。

答えて

1

は答えはAppleのJava拡張

から入手できる、新しいバージョンQuitHandlerを使用することです
0

十字ボタンをクリックしたときにこれをクリックするとキャッチできます

frame.addWindowListener(new ExitListener());
そして、このように上書きすることができます
public class ExitListener extends WindowAdapter{ 
     public void windowClosing(WindowEvent e){ 
      //some codes 
     } 
    } 

+0

は、私は怖い:ウィンドウが本当に「閉じた」ものではなく、リスナーは、このように呼ばれていません。 – DarkDust

1

Java 7の場合、QuitHandlerは実装されるインタフェースです。

import com.apple.eawt.QuitHandler; 
import com.apple.eawt.Application; 

はどこか、次の操作を実行します。

Application macApp = Application.getApplication(); 
macApp.setQuitHandler(this); 

、その後、

@Override 
public void handleQuitRequestWith(AppEvent.QuitEvent qe,final QuitResponse qr) { 
    System.out.println("quit clicked"); 
    qr.performQuit(); 

} 

を私は互換性を壊さないようにするにCodeGuy、次のURL http://cr.openjdk.java.net/~michaelm/7113349/jdk8/webrev.4/jdk/raw_files/new/src/macosx/classes/com/apple/eawt/Application.java

関連する問題