java – 如何将数据添加到在设计模式下创建的JTable?
作者:互联网
我创建了一个包含三列表的初始JFrame,如下所示:
这个JFrame是在设计模式下创建的,所以现在在面板的构造函数中,我想加载一些数据,所以当用户选择打开这个JFrame时,数据就被加载了.
我的列数据类型是Object(通常“Status”用于表示共享状态的图像 – 活动或非活动),共享名称的字符串和连接到该共享的活动客户端数量的整数.
我的问题是,如何通过代码向JTable添加行?
解决方法:
以简化的方式(可以改进):
class MyModel extends AbstractTableModel{
private ArrayList<Register> list = new ArrayList<Register>();
@Override
public int getColumnCount() {
return 3;
}
@Override
public int getRowCount() {
return list.size();
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
Register r = list.get(rowIndex);
switch (columnIndex) {
case 0: return r.status;
case 1: return r.name;
case 2: return r.clients;
}
return null;
}
public void addRegister(String status, String name, String clients){
list.add(new Register(status, name, clients));
this.fireTableDataChanged();
}
class Register{
String status;
String name;
String clients;
public Register(String status, String name, String clients) {
this.status = status;
this.name = name;
this.clients = clients;
}
}
}
然后,在面板的构造函数中:
MyTableModel mtm = new MyTableModel();
yourtable.setModel(mtm);
并添加一行:
mtm.addRegister("the status","the name","the client(s)");
编辑:
要更改列的标题名称:
TableColumn statusColumn = yourtable.getColumnModel().getColumn(0);
statusColumn.setHeaderValue("Status");
标签:tablemodel,java,swing,jtable,jframe 来源: https://codeday.me/bug/20191003/1847107.html