java - 从 ArrayList 填充的 JTable
问题描述
我想要做的是JTable
从ArrayList
.
数组列表是Record
我在下面定义的类型:
public class Record {
int Parameter_ID;
int NDC_Claims;
int NDC_SUM_Claims;
public Record(int parameter, int claims, int ndc_sum_claims){
Parameter_ID = parameter;
NDC_Claims = claims;
NDC_SUM_Claims = ndc_sum_claims;
}
public Record() {
// TODO Auto-generated constructor stub
}
我也不知道如何用列标题填充表格。这是我到目前为止所拥有的:
DefaultListModel listmodel = new DefaultListModel();
ArrayList<Record> test = new ArrayList<Record>();
DefaultTableModel modelT = new DefaultTableModel();
Object data1[] = new Object[3];
for(int i=0; i<test.size();i++){
data1[0] = test.get(i).Parameter_ID;
data1[1] = test.get(i).NDC_SUM_Claims;
data1[2] = test.get(i).NDC_Claims;
modelT.addRow(data1);
}
table_1 = new JTable(modelT, columnNames);
contentPane.add(table_1, BorderLayout.CENTER);
contentPane.add(table_1.getTableHeader(), BorderLayout.NORTH);
什么都没有输出。任何帮助都会很棒!
解决方案
那么你需要从阅读 API 开始。如果您不先阅读 API,您将无法编程。
DefaultTableModel modelT = new DefaultTableModel();
当您阅读 API 时,该构造函数做了什么?它创建一个具有 0 行和 0 列的模型。您将要创建一个具有 3 列和 0 行的模型,以便您可以将数据行添加到模型中。阅读 DefaultTableModel API
table_1 = new JTable(modelT, columnNames);
那句话有什么作用?我没有看到允许您指定模型和列名的构造函数,因此您的代码如何编译。您只想使用模型创建表。
contentPane.add(table_1, BorderLayout.CENTER);
contentPane.add(table_1.getTableHeader(), BorderLayout.NORTH);
该表应添加到 JScrollPane 的视口中。然后标题将显示为滚动窗格的列标题。
阅读 JTable API。该 API 还包含一个指向 Swing 教程的链接,How to Use Tables
您需要阅读以了解基础知识。
ArrayList<Record> test = new ArrayList<Record>();
您创建一个空的 ArrayList。那么,当您遍历循环时,您期望会发生什么?如果 ArrayList 中没有数据,如何向模型添加数据?
此外,您是否在论坛/网络上搜索了使用 DefaultTableModel 或 JTable 类的示例。这些示例将帮助您编写代码。
推荐阅读
- firebird - 将 fbk (Firebird) 转换为 CSV
- flutter - 在运行颤振代码时需要帮助来解决此问题
- javascript - 有没有办法给 raycaster three.js 一个偏移量?
- ruby-on-rails - 使用 Ruby on Rails Devise Gem 使用用户名注册
- bash - 在多个主机上使用 Bash Shell 脚本进行 SSH 身份验证验证
- android - Qt c++应用程序在android tv上自动启动
- python - 当列表项出现并在字符串中匹配时创建嵌套字典
- android - Agora.io 音频正常但视频不传输
- flutter - 在 BottomNavigationBar 选项卡之间传递 StreamBuilder => 错误状态:Stream 已被监听
- relational-algebra - 这种自然连接操作是否正确使用?(关系代数)