0

私は空のTableModelを持っています。このモデルを JTable に設定すると、行がありません。ユーザーがコンボボックスエディターで値を選択できる空の行を1つ作成したいと思います。ユーザーが null 以外の値を選択すると、2 行目が追加され、モデルに 1 つのオブジェクトが作成されます。モデルにこの行のオブジェクトがない場合、空の行を追加するにはどうすればよいですか?

4

2 に答える 2

4

TableModel はあなたの友達です。値を設定した後に行を追加するには、その setValueAt メソッドを実装します。DefaultTableModel をサブクラス化してこれを行う例を次に示します。

    DefaultTableModel model = new DefaultTableModel(1, 3) {

        /** 
         * @inherited <p>
         */
        @Override
        public void setValueAt(Object aValue, int row, int column) {
            super.setValueAt(aValue, row, column);
            if (shouldAddRow(row, column)) {
                addRow(new Object[] {});
            }
        }

        private boolean shouldAddRow(int lastEditedRow, int lastEditedColumn) {
            // implement your logic here
            return lastEditedRow == getRowCount() -1;
        }


    };
于 2011-10-25T07:20:39.643 に答える
2
I want to create one empty row, where user can select value in combo box editor.

それは空の行ではなく、

JTable Cell に null 値を追加できます。詳細については、JTableおよびJComboBox を Editor として使用するチュートリアル、および例はこちら

于 2011-10-25T07:18:59.030 に答える