在使用带有从文件读取的项目列表的自定义TableModel时,要更新JTable,可以按照以下步骤进行操作:
下面是一个示例代码:
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import java.util.List;
public class ProjectTableModel extends AbstractTableModel {
private List<Project> projects;
private String[] columnNames = {"项目名称", "项目描述"};
public ProjectTableModel(List<Project> projects) {
this.projects = projects;
}
public void updateData(List<Project> projects) {
this.projects = projects;
fireTableDataChanged();
}
@Override
public int getRowCount() {
return projects.size();
}
@Override
public int getColumnCount() {
return columnNames.length;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
Project project = projects.get(rowIndex);
if (columnIndex == 0) {
return project.getName();
} else if (columnIndex == 1) {
return project.getDescription();
}
return null;
}
@Override
public String getColumnName(int column) {
return columnNames[column];
}
}
// 在主程序中使用自定义的TableModel和JTable
public class Main {
public static void main(String[] args) {
List<Project> projects = readProjectsFromFile(); // 从文件读取项目列表
ProjectTableModel model = new ProjectTableModel(projects);
JTable table = new JTable(model);
// 将table添加到界面中的合适位置
}
}
在这个示例中,我们创建了一个自定义的TableModel类ProjectTableModel,其中包含了更新数据的方法updateData。在主程序中,我们使用这个TableModel创建了一个JTable,并将其添加到界面中。当需要更新项目列表时,可以调用updateData方法来更新数据,并通知JTable刷新显示。
请注意,这个示例中并没有提及具体的腾讯云产品,因为在这个问题的要求中要求不提及特定的云计算品牌商。如果需要使用腾讯云的相关产品来存储项目列表等数据,可以参考腾讯云的文档和相关产品介绍来选择适合的产品和服务。
领取专属 10元无门槛券
手把手带您无忧上云