我必须更改扩展* JFrame 的类的正常行为。
新行为包括以下事实:当用户单击“X”按钮时,窗口不会关闭,但在工具栏或操作系统中最小化。
所以我有一个名为 MainFrame 的类,它扩展了 JFrame ,最初是这样的:
public class MainFrame extends JFrame {
public MainFrame() {
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
// do something
}
// OTHER METHODS()
}
所以根据我的理解来获得这种行为,我必须改变前一行:
setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
成:
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
以这种方式当用户点击X按钮时窗口没有关闭,然后我必须添加一个监听器,当用户点击X按钮时最小化窗口,如下所示:
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
((JFrame)e.getSource()).setState(JFrame.ICONIFIED);
}
});
我认为这应该有用但我的问题是我不知道我要把它放在哪里!!!
我试着把它放到我的构造函数中,但是Eclipse给我留下了一些错误信息:
- WindowAdapter cannot be resolved to a type
- The method addWindowListener(WindowListener) in the type Window is not applicable for the arguments (new WindowAdapter()
{})
为什么呢?我错过了什么?我怎么解决?
答案 0 :(得分:0)
您是否导入以下两项内容?
java.awt.event.WindowAdapter;
java.awt.event.WindowEvent;
特别是WindowAdapter
...
另外,关于将addWindowListener()
方法放在何处的问题,构造函数是合适的。