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/ 私の問題は、選択した行の一部を選択したいときに始まり、いくつかの行を選択すると、選択が更新され、現在は1行しかありません選択されました。出来ますか?

概要 : 複数選択で複数の列を更新してみてください。行には、コンボボックスのある列が含まれています。複数の行を選択し、コンボボックス (選択した行の一部) を使用して、すべての行固有の列をコンボボックスの値で更新します。

よろしくみんな。

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 に答える