繁体   English   中英

jtable中的动态jcombobox渲染

[英]Dynamic jcombobox rendering inside jtable

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

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

同样,在B列的JComboBox中应将默认值显示为“ Please Wait”,这意味着一段时间后它将被动态更新。 在此之前,它必须显示“ Please Wait”。

经过一系列用户操作后,我想用动态值更新列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中选择项目。 即使我选择,它也不会被选择。

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

堆栈溢出

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

提前致谢。

DependentColumn可能会提供一些指导。 如果从属列也是可编辑的,请参见这些相关示例

图片

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM