JTable 不会显示列标题

2022-08-31 12:05:25

我有以下代码来实例化JTable:该表提供了正确数量的行和列,但是列的顶部没有标题的迹象。

public Panel1()
{
    int  nmbrRows;

    setLayout(null);
    setBackground(Color.magenta);
    Vector colHdrs;

    //create column headers

    colHdrs = new Vector(10);
    colHdrs.addElement(new String("Ticker"));

    // more statements like the above to establish all col. titles       

    nmbrRows = 25;
    DefaultTableModel tblModel = new DefaultTableModel(nmbrRows, colHdrs.size());
    tblModel.setColumnIdentifiers(colHdrs);

    scrTbl = new JTable(tblModel);
    scrTbl.setBounds(25, 50, 950, 600);
    scrTbl.setBackground(Color.gray);
    scrTbl.setRowHeight(23);    
    add(scrTbl);

//rest of constructor
...

}

将此与其他表制作代码进行比较,我没有看到任何遗漏的步骤,但必须缺少某些步骤。


答案 1

把你的里面一个.试试这个:JTableJScrollPane

add(new JScrollPane(scrTbl));

答案 2

这个答案和接受的答案之间的主要区别在于使用setViewportView()而不是add()。

如何使用 Eclipse IDE 将 JTable 放入 JScrollPane 中:

  1. 通过“设计”选项卡创建容器。JScrollPane
  2. 拉伸到所需大小(适用于“绝对布局”)。JScrollPane
  3. 将组件拖放到(视口区域)的顶部。JTableJScrollPane

在“结构>组件”中,应为 的子级。tablescrollPaneenter image description here

生成的代码将如下所示:

JScrollPane scrollPane = new JScrollPane();
...

JTable table = new JTable();
scrollPane.setViewportView(table);

推荐