1

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

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

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

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

我可以动态更新这些值,但是将该 Cell 渲染为 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 中选择项目。即使我选择,它也不会被选中。

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

堆栈溢出

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

提前致谢。

4

1 回答 1

2

DependentColumn可以提供一些指导。如果依赖列也是可编辑的,请参阅这些相关示例

图片

于 2013-03-09T20:29:23.090 回答