0
Javaアプレット(JAppletクラスを使用しています)があり、アプレットウィンドウがアクティブになったときにイベントを取得しようとしています。私はWindowListenerとFocusListenerを実装しようとしましたが、何のイベントも受け取りません。アプレットウィンドウにフォーカスが当てられているかどうかを確認するには何が必要ですか?ここでアプレットのフォーカスイベントまたはウィンドウイベントを受信しない
は私のテストコードです:
public class AppletTest extends JApplet implements WindowListener, FocusListener {
public void init() {
// addWindowListener(this); // Won't compile
addFocusListener(this);
}
public void actionPerformed(ActionEvent event){
Object source = event.getSource();
String command = event.getActionCommand();
}
@Override
public void focusGained(FocusEvent e) {
System.out.println("focusGained");
}
@Override
public void focusLost(FocusEvent e) {}
@Override
public void windowActivated(WindowEvent e) {
System.out.println("windowActivated");
}
// Stub methods
@Override
public void windowOpened(WindowEvent e) {}
@Override
public void windowClosing(WindowEvent e) {}
@Override
public void windowClosed(WindowEvent e) {}
@Override
public void windowIconified(WindowEvent e) {}
@Override
public void windowDeiconified(WindowEvent e) {}
@Override
public void windowDeactivated(WindowEvent e) {}
}
これは本当に私が尋ねた問題を解決します、ありがとう! –
しかし、私の生産コードでは、かなり複雑ですが、それは必ずしも起動されません。私はまた、私のアプレットにモードレスのJPanelを持っています。それらのJPanelの1つが上にあり、メインのアプレットウィンドウをクリックすると、focusGainedイベントは発生しません。メインアプレットウィンドウがzOrderの最上部に移動したときにイベントを取得する方法はありますか? –