【问题标题】:JCheckBox List error?JCheckBox 列表错误?
【发布时间】:2015-06-19 06:18:28
【问题描述】:

我正在用 java 编写一个谜机,当程序启动时,我会出现一个带有 5 个 JCheckBoxes 的 JOptionPane,供用户选择要使用的转子以及使用顺序。

我的问题是,它们被添加到弹出窗口中,但实际上并未显示。 相反,我得到了所有 5 个复选框的大量读数,就好像我调用了它们的 toString 方法一样。 我在弹出窗口中有几个正确显示的 JLabel,以及底部的 OK 按钮。

我的列表是这样初始化的:

private final List<JCheckBox> rotorCheckBox = Arrays.asList(new JCheckBox(
        "Rotor 1"), new JCheckBox("Rotor 2"), new JCheckBox("Rotor 3"),
        new JCheckBox("Rotor 4"), new JCheckBox("Rotor 5"));

我不知道为什么会这样,它以前是一个数组,我一直在尝试转换它,所以我不必经常调用 Arrays.asList() 。 我在我的代码中检查了它的每一次使用,没有调用 toString 或创建与它在列表中相关的错误。

如何让它正确显示?

【问题讨论】:

    标签: java swing list jcheckbox


    【解决方案1】:

    您要将列表添加到 JOptionPane,您应该将 JCheckBox 添加到 JPanel 并改用它

    所以,不要像...

    JOptionPane.showMessageDialog(null, rotorCheckBox);
    

    你应该使用更像...的东西

    JPanel panel = new JPanel();
    for (JCheckBox cb : rotorCheckBox) {
        panel.add(cb);
    }
    JOptionPane.showMessageDialog(null, panel);
    

    举个例子

    【讨论】:

      猜你喜欢
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-27
      • 1970-01-01
      • 1970-01-01
      • 2019-05-22
      相关资源
      最近更新 更多