我正在尝试通过 WindowStateListener
监听单个 Frame
上的事件。
import java.awt.Frame;
import java.awt.Label;
import java.awt.event.WindowStateListener;
import java.awt.event.WindowEvent;
public class UserInterface implements WindowStateListener
{
public static void main(final String[] arguments)
{
UserInterface userInterface = new UserInterface();
}
public UserInterface()
{
Frame frame = new Frame("Graphics Example");
frame.addWindowStateListener(this);
frame.add(new Label("Hello, world!");
frame.pack();
frame.setVisible(true);
}
public void windowStateChanged(WindowEvent event)
{
System.out.println(event.paramString();
}
}
它适用于最小化事件,但不适用于关闭事件。 WINDOW_CLOSING
is definitely a valid WindowEvent
value , 和 it's definitely something that Frame
can throw .那么为什么不将其传递给 windowStateChanged()
?
最佳答案
WindowStateListeners 不会收到窗口关闭事件的通知。他们只会收到窗口状态更改的通知,例如图标化或去图标化。如果您想要关闭事件,请实现 WindowListener(或扩展 WindowAdapter)。本教程对此进行了解释http://download.oracle.com/javase/tutorial/uiswing/events/windowlistener.html .
关于java - 为什么这个监听器不检测窗口关闭事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7962706/