0

我有一张接受多选的表格。在这个 jtable 上,我添加了一个列,我添加了一个这样的组合框:

public void setPriorityEditor(final String columnName) {
        final TableColumn col = ((BasicTableModel) table.getModel())
            .findTableColumn(columnName);
        col.setCellEditor(new PriorityComboBoxEditor());
    }

我想实现一个新功能:可以使用作为我选择的一部分的组合框更新多个字段。 http://imageshack.us/photo/my-images/40/qyks.png/ 当我想在我的选择中选择一行时,我的问题开始 avec 选择几行,选择是刷新,我现在只有一行选择。可能吗?

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

问候伙计们。

4

1 回答 1

0

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

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);
            }
        }

这只是为了分析,忘记了清洁度和性能:D 如果您需要更多信息,请添加评论。

于 2013-10-02T13:08:43.357 回答