0

我有空的 TableModel。当我将此模型设置为 JTable 时,它​​没有行。我想创建一个空行,用户可以在组合框编辑器中选择值。如果用户选择非空值,则添加第二行并且我在模型中有一个对象。当模型中没有此行的对象时,如何添加空行?

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 单元格,更多关于JTableJComboBox 作为编辑器的教程,以及此处的示例

于 2011-10-25T07:18:59.030 回答