1

我的 JTable 标识符不会出现。我尝试了很多不同的东西,但甚至没有一点改变。所以现在我在这里问。

我的代码:

public void showTable() {
    String[] heads = {"PersonID", "Name", "Date", "Age"};

    DefaultTableModel model = new DefaultTableModel();

    model.setColumnIdentifiers(heads);
    model.setRowCount(4);

    JTable table = new JTable(model);

    int row = 2;

    table.setValueAt("Test1", row, 0);
    table.setValueAt("Test2", row, 1);
    table.setValueAt("Test3", row, 2);
    table.setValueAt("Test4", row, 3);


    mainBackgroundManager.add(table, BorderLayout.CENTER);
}

出现的是:

我也试过写这个,但这也行不通:

public void showTable() {
    DefaultTableModel model = new DefaultTableModel();

    model.setRowCount(4);
    model.setColumnCount(4);

    JTable table = new JTable(model);

    table.getColumnModel().getColumn(0).setHeaderValue("PersonID");
    table.getColumnModel().getColumn(1).setHeaderValue("Name");
    table.getColumnModel().getColumn(2).setHeaderValue("Date");
    table.getColumnModel().getColumn(3).setHeaderValue("Age");

    int row = 2;

    table.setValueAt("Test1", row, 0);
    table.setValueAt("Test2", row, 1);
    table.setValueAt("Test3", row, 2);
    table.setValueAt("Test4", row, 3);


    mainBackgroundManager.add(table, BorderLayout.CENTER);
}

谢谢你。

4

1 回答 1

6

有两种方法适合您。更困难的一个,来自 JTable API:

“请注意,如果您希望在独立视图(JScrollPane 之外)中使用 JTable 并希望显示标题,您可以使用 getTableHeader() 获取它并单独显示它。”

看起来像这样:

JTableHeader header = table.getTableHeader();

mainBackgroundManager.add(header, BorderLayout.NORTH);
mainBackgroundManager.add(table, BorderLayout.CENTER);

更简单的(首选):
把你的JTable里面一个JScrollPane. 试试这个:

mainBackgroundManager.add(new JScrollPane(table), BorderLayout.CENTER);
于 2013-08-14T16:53:16.060 回答