gpt4 book ai didi

java - 如何向设计模式下创建的JTable添加数据?

转载 作者:行者123 更新时间:2023-12-02 00:21:24 25 4
gpt4 key购买 nike

我创建了一个初始 JFrame,其中包含一个三列的表格,如下所示:

share manager frame

此 JFrame 是在设计模式下创建的,因此现在在面板的构造函数中,我想加载一些数据,以便当用户选择打开此 JFrame 时,会加载数据。

我的列数据类型是对象(通常“状态”代表共享状态的图像 - Activity 或非 Activity ),字符串代表共享名称,整数代表连接到该共享的 Activity 客户端数量。

我的问题是,如何通过代码向 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");

关于java - 如何向设计模式下创建的JTable添加数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10904316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com