我有空的TableModel。当我将此模型设置为JTable时,它没有行。我想创建一个空行,用户可以在组合框编辑器中选择值。如果用户选择非空值,则添加第二行,我在模型中有一个对象。当模型中没有此行的对象时,如何添加空行?
答案 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单元格,有关JTable和JComboBox as an Editor的教程中的更多内容以及示例here