过去两天我一直在尝试使用 JTable
在 java 应用程序中创建数据 View 表。
Netbeans 绑定(bind)选项不起作用,但没关系,我设法创建了自己的 TableModel
。
数据显示在表格中,但标题始终只包含字母(每列为 A、B、C...)。在某一时刻,一切都运行良好,但后来我想为该特定表设置另一个模型,即使我创建全新的 JPanel
并从头开始设置它,它也不再正确显示标签。
这是我的自定义 TableModel 类
public class MyTableModel extends AbstractTableModel{
private ArrayList<Options> list;
String[] headers;
public MyTableModel(ArrayList<Options> list, String[] headers) {
this.list = list;
this.headers = headers;
}
@Override
public int getRowCount() {
return this.list.size();
}
@Override
public int getColumnCount() {
return headers.length;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
if(columnIndex == 0) {
return list.get(rowIndex).getId();
}
if(columnIndex == 1) {
return list.get(rowIndex).getText();
}
else {
return null;
}
} }
这是 jframe 类中代码的一部分(我运行的)
ArrayList<Options> list;
String[] optionHeaders = {"id", "text"};
public table2frame() {
initComponents();
list = (ArrayList) zadanie_2_app.Zadanie_2_app.findAll();
JTable table2 = new JTable(new MyTableModel(list, optionHeaders));}
最佳答案
AbstractTableModel
要求重写 getColumnName
,否则将使用占位符列名称。添加
@Override
public String getColumnName(int column) {
return headers[column];
}
关于java - JTable 标题未设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16752006/