我想用swing制作一个向导。我注意到 JOptionPane 就像一个向导一样工作,只是输入的数量和它的组织方式是有限的。
有谁知道 JOptionPane 如何“等待”直到给出所需的输入并在最后返回值之前按下右键?
有谁知道如何使用 JOptionPane 以便可以创建向导的典型 cardLayout ?
我认为您需要一个模式JDialog
来CardLayout
交换向导的屏幕。当JDialog
不可见时,您可以从中获取状态并决定如何继续。
“等待”是什么意思?在按下按钮之前阻止执行的意思是“等待”吗?如果是这样,有很多解决方案,但最简单的解决方案之一是这样的:
while(block) {
Thread.sleep(500);
}
block = false;
当按下 OK 按钮时,您的对话框就会设置。有更复杂的解决方案,这只是一个例子。
如果您的意思是必须填写所有字段的“等待”,您可以轻松地为每个字段实现一个侦听器,以便在最后一个字段被编辑时启用 OK 按钮。
您可以在此处查看JDialog
eg的源代码。我认为阻塞部分是由超类的方法完成的。show()
Dialog
我的提示:不要尝试从头开始自己制作多页向导,也不要尝试阻止任何内容等。这通常会导致更多问题。而是按照这里的教程进行操作。它解释了如何使用对话框作为向导的基础。