我写了一个Swing应用程序,它有一个主窗口。
现在我想在显示主窗口之前显示配置对话框,因为根据配置对话框的输出,可能必须以不同方式创建主窗口。
我已经在某处读过一个对话框应该总是有一个父窗口。
在这些情况下创建和显示配置对话框的正确方法是什么?我应该把它作为JDialog还是普通的JFrame?
答案 0 :(得分:4)
我已经在某处读过一个对话框应该总是有一个父窗口。
我不知道有任何这样的限制。这是一个简单的counter-example。
答案 1 :(得分:4)
使用null引用父窗口。当没有父母时,这是一种可行的做法。
然后你可以自由地做这样的事情
String body = "Which will you choose?";
String title = "The Title";
int choice = JOptionPane.showConfirmDialog(null, body, title, JOptionPane.YES_NO_OPTION);
switch(choice) {
case JOptionPane.YES_OPTION:
createAndDoWindowForYesOption(); break;
case JOptionPane.NO_OPTION:
createAndDoWindowForNoOption(); break;
default:
doNothing(); break;
}
编辑:我只使用了JOptionPane作为示例,正如@Mre所指出的,如果需要更多功能,这可以扩展到JDialog。