【问题标题】:Creating Wizard Swing创建向导 Swing
【发布时间】:2012-04-29 19:35:23
【问题描述】:

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

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

有谁知道如何使用 JOptionPane 来创建向导的典型 cardLayout 吗?

【问题讨论】:

标签: java swing wizard


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

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

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

      我的提示:不要尝试从头开始自己制作多页向导,也不要尝试阻止任何内容等。这通常会导致更多问题。而是遵循here 之类的教程。它解释了如何将 Dialog 用作向导的基础。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-05
        • 2015-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-11
        • 1970-01-01
        • 2010-12-26
        相关资源
        最近更新 更多