从 ArrayList 填充的 JTable
JTable populated from an ArrayList
我想做的是从 ArrayList
.
填充 JTable
数组列表是我在下面定义的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
}
我也不知道如何用 headers 列填充 table。这是我目前所拥有的:
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);
该语句的作用是什么?我没有看到允许您指定模型和列名称的构造函数,因此您的代码如何编译。您只想使用创建 table
该模型。
contentPane.add(table_1, BorderLayout.CENTER);
contentPane.add(table_1.getTableHeader(), BorderLayout.NORTH);
table 应该添加到 JScrollPane 的视口中。然后 header 将显示为滚动窗格的 header 列。
读取 JTable API。 API 还有一个 link 的 Swing 教程 How to Use Tables
你需要阅读基础知识。
ArrayList<Record> test = new ArrayList<Record>();
您创建了一个空的 ArrayList。那么当你遍历循环时你期望发生什么?如果 ArrayList 中没有数据,如何向模型添加数据?
此外,您是否在 forum/web 中搜索了使用 DefaultTableModel 或 JTable 类 的示例。这些示例将帮助您编写代码。
您可以创建自定义 AbstractTableModel,然后使用该模型创建 JTable。
这是一个 class 处理数组的 ArrayList:
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
public class DataTableModel<T> extends AbstractTableModel {
/**
* Benjamin Rathelot
*/
private static final long serialVersionUID = -7361470013779016219L;
private ArrayList<T[]> data = new ArrayList<T[]>();
private String[] tableHeaders;
public DataTableModel(ArrayList<T[]> data, String[] headers) {
super();
this.data = data;
this.tableHeaders = headers;
}
@Override
public int getRowCount() {
return data.size();
}
@Override
public int getColumnCount() {
if(data.size()>0) return data.get(0).length;
return 0;
}
@Override
public Object getValueAt(int arg0, int arg1) {
// TODO Auto-generated method stub
if(data.size()>=arg0) {
if(data.get(arg0).length>=arg1) {
return data.get(arg0)[arg1];
}
}
return null;
}
@Override
public String getColumnName(int columnIndex) {
return tableHeaders[columnIndex];
}
}
我想做的是从 ArrayList
.
JTable
数组列表是我在下面定义的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
}
我也不知道如何用 headers 列填充 table。这是我目前所拥有的:
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);
该语句的作用是什么?我没有看到允许您指定模型和列名称的构造函数,因此您的代码如何编译。您只想使用创建 table 该模型。
contentPane.add(table_1, BorderLayout.CENTER);
contentPane.add(table_1.getTableHeader(), BorderLayout.NORTH);
table 应该添加到 JScrollPane 的视口中。然后 header 将显示为滚动窗格的 header 列。
读取 JTable API。 API 还有一个 link 的 Swing 教程 How to Use Tables
你需要阅读基础知识。
ArrayList<Record> test = new ArrayList<Record>();
您创建了一个空的 ArrayList。那么当你遍历循环时你期望发生什么?如果 ArrayList 中没有数据,如何向模型添加数据?
此外,您是否在 forum/web 中搜索了使用 DefaultTableModel 或 JTable 类 的示例。这些示例将帮助您编写代码。
您可以创建自定义 AbstractTableModel,然后使用该模型创建 JTable。 这是一个 class 处理数组的 ArrayList:
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
public class DataTableModel<T> extends AbstractTableModel {
/**
* Benjamin Rathelot
*/
private static final long serialVersionUID = -7361470013779016219L;
private ArrayList<T[]> data = new ArrayList<T[]>();
private String[] tableHeaders;
public DataTableModel(ArrayList<T[]> data, String[] headers) {
super();
this.data = data;
this.tableHeaders = headers;
}
@Override
public int getRowCount() {
return data.size();
}
@Override
public int getColumnCount() {
if(data.size()>0) return data.get(0).length;
return 0;
}
@Override
public Object getValueAt(int arg0, int arg1) {
// TODO Auto-generated method stub
if(data.size()>=arg0) {
if(data.get(arg0).length>=arg1) {
return data.get(arg0)[arg1];
}
}
return null;
}
@Override
public String getColumnName(int columnIndex) {
return tableHeaders[columnIndex];
}
}