【问题标题】:Combobox in Java repaintJava重绘中的组合框
【发布时间】:2015-05-18 08:34:19
【问题描述】:

我有一个 Java 问题。 我制作了一个包含复选框(mPortalJCheckbox)和组合框(mVersandComboBox)的代码。

当 Checkbox 为 true 时,mVersadComboBox 中应该只有 2 项。 否则应该有 3 个项目。

我的听众是这样的:

mPortalJCheckbox.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            if (mPortalJCheckbox.isSelected() == false) {
               System.out.println(mPortalJCheckbox.isSelected());
               mVersandComboBox.removeItemAt(2);             
               mVersandComboBox.revalidate();
               mVersandComboBox.repaint();
            }
         }
      });

我认为 Combobox 删除了最后一项,但它不会重新绘制 Combobox 权利。我的错在哪里?

谢谢:)

【问题讨论】:

    标签: java combobox refresh repaint


    【解决方案1】:

    您不需要 revalidate() 或 repaint()。当组合框模型中的数据发生变化时,组合框会重新绘制自己。

    removeItemAt(...) 方法仅在 ComboBoxModel 是可变的情况下才有效。确保您使用的是 DefaultComboBoxModel:

    DefaultComboBoxModel model = new DefaultComboBoxModel(...);
    JComboBox comboBox = new JComboBox( model );
    

    如果您需要更多帮助,请发布正确的 SSCCE 来说明问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-16
      • 2013-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-21
      相关资源
      最近更新 更多