【问题标题】:Dynamic jcombobox rendering inside jtablejtable中的动态jcombobox渲染
【发布时间】:2013-02-24 22:44:57
【问题描述】:

我在 JTable 的 2 列中有一个带有 JCheckboxes 的 JTable。假设 A 列和 B 列是其中包含 JComboBox 的列。 A 列的 JCheckbox 的项目是静态的,可以硬编码。但是,B 列的 JComboBox 值的项目是动态的。我想要做的是,当用户启动应用程序时,列 A 的 JcomboBox 应该具有静态值,并且它应该在 ComboBox 中显示默认选择值“---Select---”

即我将组合框项设置为 ["--Select","X","Y","Z"]

另外,在列 B 的 JComboBox 中应该显示默认值“请稍候”,这意味着,一段时间后它将动态更新。在那之前,它必须显示“请稍候”。

在一组用户操作之后,我想用动态值更新 B 列的 JComboBox。即便如此,B 列的 JcomboBox 值也取决于 A 列的 JcomboBox 选定项。

我可以动态更新值,但是将该单元格呈现为 JComboBox 无法按预期工作。

我已经尝试了以下,

Enumeration<TableColumn> c = myTable.getColumnModel().getColumns();
        int i = 0;
        while (c.hasMoreElements()) {
            TableColumn column = c.nextElement();
            column.setCellRenderer(new ComboBoxCellRenderer(i));
            i++;
        }



   private static class ComboBoxCellRenderer extends JComboBox implements TableCellRenderer {

        public ComboBoxCellRenderer(int column) {
            // for (int i = 0; i < elements.length; i++) {
            if (column == 0) {

                addItem("--Select--");
                addItem("X");
                addItem("Y");
                addItem("Z");

            }
        }

        @Override
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            setSelectedItem(value);
            return this;
        }
    }

如果我使用此代码,则无法从 JComboBo 中选择项目。即使我选择,它也不会被选中。

我目前正在使用下面链接中提到的代码。

Stackoverflow

如果有人为此提供示例代码,这对我会有很大帮助。

提前致谢。

【问题讨论】:

    标签: java swing jtable dynamic-data jcombobox


    【解决方案1】:

    DependentColumn 可能会提供一些指导。如果依赖列也是可编辑的,请参阅这些related examples

    【讨论】:

      猜你喜欢
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多