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 находится сверху, и я нажимаю на главное окно апплета, событие focusGained не запускается. Есть ли способ получить событие, когда мое главное окно апплета выведено вверху zOrder? –