我在修复我的 Java 程序中的两个 GUI 时遇到了另一个问题。假设我们有一个新的 JFrame:
public class guiOne {
public static void main (String [] agrs) {
JFrame f = new JFrame();
JButton b = new JButton();
JPanel p = new JPanel();
b.setSize(100,100);
f.setTitle("New JFrame");
f.setVisible(true);
f.setSize(300,300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
p.add(b);
f.add(b);
}
当我单击新建按钮时,会出现一个新的 JFrame。我遇到的问题是当我添加这段代码时:
System.exit(guiOne);
所有导出。我只希望 guiOne 在我启动新的 JFrame 时立即退出。为什么它会关闭所有内容?
最佳答案
f.setVisible(true);
必须是容器构造函数中的最后一行代码
1) 永远不要创建新的 JFrame作为另一个顶级容器,使用 JDialog与父 JFrame
和/或 setModal()/ModalityTypes
如果需要
2) 不要创建一个新的Top-Level Container
,只创建一次这个contaainer然后用getComtentPane.removeAll()
重复使用它
3) 你看过CardLayout对于简单易行的实现,更容易在屏幕上玩另一个 JFrame/JDialog
4) JTabbedPane是另一种方法如何做到这一点
关于java - Java GUI 中的退出冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9495608/