在Java Swing教程中,在How to Write an Internal Frame Listener部分中,它提供了演示代码来捕获关闭或最小化(图标化)JInternalFrame
窗口的事件。
然而,演示中未捕获最大化和恢复事件,似乎没有方法可以在InternalFrameAdapter
类或InternalFrameEvent
中的相对字段中捕获这些事件。
如何捕获用户点击最大化/恢复按钮的事件?
答案 0 :(得分:2)
您可以使用PropertyChangeListener和JInternalFrame#IS_MAXIMUM_PROPERTY:
//Add an internal frame listener so we can see
//what internal frame events it generates.
listenedToWindow.addInternalFrameListener(this);
listenedToWindow.addPropertyChangeListener(evt -> {
String prop = evt.getPropertyName();
JInternalFrame f = (JInternalFrame) evt.getSource();
Object newValue = evt.getNewValue();
if (JInternalFrame.IS_MAXIMUM_PROPERTY == prop) {
String prefix;
if (newValue == Boolean.TRUE) {
prefix = "Internal frame maximized : ";
} else {
prefix = "Internal frame minimized : ";
}
String s = prefix + f;
display.append(s + newline);
display.setCaretPosition(display.getDocument().getLength());
}
});
//...