我浏览了有关如何在单击按钮时仅打开一个窗口的主题,但没有任何解决方案有帮助,也许是因为我的代码结构有点不同。
所以我有一个扩展 JFrame 的主窗口类,其中一个按钮应该在单击时打开一个新窗口。我已经在一个单独的类中为新窗口定义了小部件/面板等。目前,每次我单击该按钮都会打开一个新窗口。我想这样做,如果一个窗口已经打开,那么一旦再次单击按钮,它就会切换到该窗口。
这是我的一些代码:
public class MainWindow extends JFrame{
/*
* create widgets and panels
*/
Button.addActionListener(new ActionListener() { // the button that opens
//a new window
@Override
public void actionPerformed(ActionEvent e) {
Window2 ww = new Window2(); //creating the new window here
}
});
}
注意。 Window2 类还扩展了 JFrame,如果这有任何帮助的话。
谢谢
最佳答案
从 actionPerformed
方法中提取对象创建,因为每次单击按钮时都会创建新对象。以下内容可以帮助您:-
- 制作一个Window2类singalton,了解有关singalton的更多详细信息,请点击here .
2.添加空检查如下:-
....
Window2 ww = null; // static or instence variable
......
@Override
public void actionPerformed(ActionEvent e) {
if(ww==null)
{
ww = new Window2();
ww.someMethod();
}
else
{
ww.someMethod();
}
} });
关于java - 仅在 actionPerformed 上打开一个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22170327/