Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jtable内的动态jcombobox呈现_Java_Swing_Jtable_Dynamic Data_Jcombobox - Fatal编程技术网

Java jtable内的动态jcombobox呈现

Java jtable内的动态jcombobox呈现,java,swing,jtable,dynamic-data,jcombobox,Java,Swing,Jtable,Dynamic Data,Jcombobox,我有一个JTable,在JTable的两列中包含jcheckbox。假设A列和B列中都有JComboBox。列A的JCheckbox的项是静态的,可以硬编码。但是,列B的JComboBox值的项是动态的。我想做的是,当用户启动应用程序时,列A的JcomboBox应该有静态值,并且它应该在组合框中显示默认的选定值为“---选择--” i、 e.我会将combox项目设置为[“--选择”、“X”、“Y”、“Z”] 此外,在B列中,JComboBox的默认值应显示为“请等待”,这意味着,经过一段时间后

我有一个JTable,在JTable的两列中包含jcheckbox。假设A列和B列中都有JComboBox。列A的JCheckbox的项是静态的,可以硬编码。但是,列B的JComboBox值的项是动态的。我想做的是,当用户启动应用程序时,列A的JcomboBox应该有静态值,并且它应该在组合框中显示默认的选定值为“---选择--”

i、 e.我会将combox项目设置为[“--选择”、“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;
        }
    }
枚举c=myTable.getColumnModel().getColumns(); int i=0; 而(c.hasMoreElements()){ TableColumn column=c.nextElement(); column.setCellRenderer(新ComboBoxCellRenderer(i)); i++; } 私有静态类ComboxCellRenderer扩展了JComboBox实现了TableCellRenderer{ 公共ComboxCellRenderer(int列){ //for(int i=0;i”); 附加条款(“X”); 附加条款(“Y”); 附加条款(“Z”); } } @凌驾 公共组件GetTableCellRenderComponent(JTable表、对象值、布尔isSelected、布尔hasFocus、int行、int列){ setSelectedItem(值); 归还这个; } } 如果我使用此代码,则无法从JComboBo中选择项目。即使我选择了,也无法将其选中

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

如果有人给我一个示例代码,对我会很有帮助

提前感谢。

可能会提供一些指导。如果从属列也可编辑,请参阅这些