java - JTable 标题未设置

标签 java swing jtable

过去两天我一直在尝试使用 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/

相关文章:

java - getRowSorter 相当于 Java 1.4 中的 JTable

java - 如何更新 native 构建的 JavaFX 应用程序

java - 将 ArrayList 转换为 DefaultListModel

java - JPanel 中没有应用颜色?

java - 从 JButton 打开 excel 工作表 - Java Swing

java - 双击JTable

java - JTable 的 TableModelListener 如何工作?

java - 用一些已知的概率,设置一个变量的值

java - 将 java 控制台附加到文件

java - String.matches() 和 matcher.matches() 返回不同的结果