Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.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+;组合框(celleditor)和#x2B;点击_Java_Swing_Jtable_Renderer - Fatal编程技术网

Java 多选JTable+;组合框(celleditor)和#x2B;点击

Java 多选JTable+;组合框(celleditor)和#x2B;点击,java,swing,jtable,renderer,Java,Swing,Jtable,Renderer,我有一个可以接受多重选择的表。在这个jtable上,我添加了一个列,我添加了一个组合框,如下所示: public void setPriorityEditor(final String columnName) { final TableColumn col = ((BasicTableModel) table.getModel()) .findTableColumn(columnName); col.setCellEditor(new Pr

我有一个可以接受多重选择的表。在这个jtable上,我添加了一个列,我添加了一个组合框,如下所示:

public void setPriorityEditor(final String columnName) {
        final TableColumn col = ((BasicTableModel) table.getModel())
            .findTableColumn(columnName);
        col.setCellEditor(new PriorityComboBoxEditor());
    }
if (extend) {
            super.changeSelection(rowIndex, columnIndex, toggle, extend);
            listTest = new ArrayList<Object>();
            for (int e : modelTable.getToolTipsJTable().getSelectedRows()) {
                listTest.add(e);
            }
            isExtend = true;
        } else {
            // super.changeSelection(rowIndex, columnIndex, toggle, extend);
            if (modelTable.getToolTipsJTable().getSelectedRows().length > 1) {
                listTest = new ArrayList<Object>();
                for (int e : modelTable.getToolTipsJTable()
                    .getSelectedRows()) {
                    listTest.add(e);
                }
                isExtend = true;
            }
            if (isExtend) {
                boolean isSame = false;
                for (Object i : listTest) {
                    if (((Integer) i).intValue() == rowIndex) {
                        isSame = true;
                    }
                }
                if (!isSame) {
                    isExtend = false;
                    super.changeSelection(rowIndex, columnIndex, toggle,
                        extend);
                }
            } else {
                super
                    .changeSelection(rowIndex, columnIndex, toggle, extend);
            }
        }
我想实现一个新功能: 可以使用组合框更新多个字段,这是我选择的一部分。 我的问题开始于当我想选择一行,其中一部分在我的选择avec选择几行,选择是刷新,我现在只选择了一行。 可能吗

总结: 尝试使用多选更新几个列。 行包含带有组合框的列。 选择几行并使用combobox(它是选定行的一部分)来更新所有行特定列的值combobox


向大家致意。

所以我在changeSelection()方法中更改代码如下:

public void setPriorityEditor(final String columnName) {
        final TableColumn col = ((BasicTableModel) table.getModel())
            .findTableColumn(columnName);
        col.setCellEditor(new PriorityComboBoxEditor());
    }
if (extend) {
            super.changeSelection(rowIndex, columnIndex, toggle, extend);
            listTest = new ArrayList<Object>();
            for (int e : modelTable.getToolTipsJTable().getSelectedRows()) {
                listTest.add(e);
            }
            isExtend = true;
        } else {
            // super.changeSelection(rowIndex, columnIndex, toggle, extend);
            if (modelTable.getToolTipsJTable().getSelectedRows().length > 1) {
                listTest = new ArrayList<Object>();
                for (int e : modelTable.getToolTipsJTable()
                    .getSelectedRows()) {
                    listTest.add(e);
                }
                isExtend = true;
            }
            if (isExtend) {
                boolean isSame = false;
                for (Object i : listTest) {
                    if (((Integer) i).intValue() == rowIndex) {
                        isSame = true;
                    }
                }
                if (!isSame) {
                    isExtend = false;
                    super.changeSelection(rowIndex, columnIndex, toggle,
                        extend);
                }
            } else {
                super
                    .changeSelection(rowIndex, columnIndex, toggle, extend);
            }
        }
if(扩展){
super.changeSelection(行索引、列索引、切换、扩展);
listTest=新的ArrayList();
对于(int e:modelTable.getToolTipsJTable().getSelectedRows()){
添加(e);
}
isExtend=true;
}否则{
//super.changeSelection(行索引、列索引、切换、扩展);
if(modelTable.getToolTipsJTable().getSelectedRows().length>1){
listTest=新的ArrayList();
for(int e:modelTable.getToolTipsJTable()
.getSelectedRows()){
添加(e);
}
isExtend=true;
}
如果(isExtend){
布尔值IsName=false;
for(对象i:listTest){
if(((整数)i).intValue()==行索引){
IsName=true;
}
}
如果(!IsName){
isExtend=false;
super.changeSelection(行索引、列索引、切换、,
扩展);
}
}否则{
超级的
.changeSelection(行索引、列索引、切换、扩展);
}
}
这只是为了分析,忘记了清洁度和性能:D
如果您需要更多信息,请添加评论。

您好,英语可能不是您的第一语言,但您的问题很难理解。你能更新/澄清你的问题吗?谢谢Protip:输入你的母语并翻译,因为谷歌的功能现在非常好。是的,但是在你的应用程序的其他地方只有一个组合框,而不是每行复制一个组合框,这不是更有意义吗?这将为你们简化事情。是的,但用户也可以使用单行组合框。我无法更改基本设计。第一件事:我只想在选择作为多重选择一部分的行时禁用清除选择。我用jTable方法搜索,但没有找到。。。