创建向导Swing

时间:2012-04-29 19:35:23

标签: java swing wizard

我想使用swing制作一个向导。我注意到JOptionPane就像向导一样工作,只有输入的数量和组织的方式是有限的。

有谁知道JOptionPane"等待"直到给出所需的输入并按下右键然后在结束时返回值?

是否有人知道如何使用JOptionPane以便可以创建向导的典型cardLayout?

3 个答案:

答案 0 :(得分:5)

您可以向JOptionPane添加任意内容,如图here所示。该内容可以是CardLayout的面板,如here所示。给定JOptionPane.OK_CANCEL_OPTIONJOptionPane将等到单击任一按钮。如果结果为JOptionPane.OK_OPTION,您可以根据需要检查卡片的内容。

答案 1 :(得分:4)

我认为你需要一个带有JDialog的模态CardLayout来交换向导的屏幕。当JDialog不可见时,您可以从中获取状态并决定如何继续。

答案 2 :(得分:1)

“等待”是什么意思?在按下按钮之前阻止执行意味着“等待”吗?如果是这样,有很多解决方案,但最简单的解决方案之一就是:

while(block) {
    Thread.sleep(500);
}

按下确定按钮后,对话框会设置block = false;。有更复杂的解决方案,这只是一个例子。

如果你的意思是“等待”必须填写所有字段,你可以轻松地为每个字段实现一个监听器,以便在最后一个字段被编辑时启用OK按钮。

您可以查看JDialog的源代码,例如here。我认为阻止部分是由超类show() here中的方法Dialog完成的。

我的提示:不要试图自己创建一个多页面向导,不要试图阻止任何事情等。这通常会导致更多问题。而是按照here这样的教程进行操作。它解释了如何使用Dialog作为向导的基础。