2

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

有谁知道 JOptionPane 如何“等待”直到给出所需的输入并在最后返回值之前按下右键?

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

4

3 回答 3

5

您可以将任意内容添加到 a中,如此JOptionPane所示。该内容可以是具有的面板,如此所示。鉴于,将等到单击任一按钮。如果结果是,您可以根据需要检查卡片的内容。CardLayoutJOptionPane.OK_CANCEL_OPTIONJOptionPaneJOptionPane.OK_OPTION

于 2012-04-30T01:23:50.960 回答
4

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

于 2012-04-30T07:34:25.847 回答
1

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

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

block = false;当按下 OK 按钮时,您的对话框就会设置。有更复杂的解决方案,这只是一个例子。

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

您可以在此处查看JDialogeg的源代码。我认为阻塞部分是由超类的方法完成show()Dialog

我的提示:不要尝试从头开始自己制作多页向导,也不要尝试阻止任何内容等。这通常会导致更多问题。而是按照这里的教程进行操作。它解释了如何使用对话框作为向导的基础。

于 2012-04-29T22:27:47.810 回答