我希望有一个包含10列空表格的JFrame窗口。当鼠标点击事件发生时,应该用一个包含10个或更少项目的列表填充表格,然后留下未使用的表格行。如何完成这个任务?
AbstractTableModel
来定义自己的TableModel
实现。这样,您可以使用任何合适的集合(例如java.util.List
)作为您的模型“后端”。当触发ActionEvent
时,通常会修改底层集合,然后触发TableModelEvent
以导致JTable
重新绘制。String data[][] = {{"a","b"}, {"c","d"}};
您需要使用先前的数据和null单元格创建新矩阵,以完成表格。最终您将得到类似以下的结果。
Object data2[][] = {{"a","b"},
{"c","d"},
{null,null},
{null,null},
{null,null},
{null,null},
{null,null},
{null,null},
{null,null},
{null,null}};
这样,您将拥有一个10x2的矩阵,它将填满您的表格。现在您可以更新您的DefaultTableModel了。
yourTable.setModel(
new DefaultTableModel(data2, new String [] {"Column1Title", "Cloumn2Title"}) {
Class[] types = new Class[] {String.class,String.class};
boolean[] canEdit = new boolean[] {true, true};
@Override
public Class getColumnClass(int columnIndex){ return types [columnIndex];}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex){ return canEdit [columnIndex];}
});
就是这样。我想你不会在创建对象矩阵方面遇到问题。
addRow
、insertRow
、setDataAt
等)。