如何通过编辑JTable行来添加表模型值?

时间:2011-10-25 06:09:21

标签: java swing jtable tablemodel

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

2 个答案:

答案 0 :(得分: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;
        }


    };

答案 1 :(得分:2)

I want to create one empty row, where user can select value in combo box editor.

这不是空行,

您可以将空值添加到JTable单元格,有关JTableJComboBox as an Editor的教程中的更多内容以及示例here