如何为JTable设置标头?

时间:2010-02-19 16:42:32

标签: java swing

使用以下示例代码:

String column_names[]= {"Serial Number","Medicine Name","Dose","Frequency"};
table_model=new DefaultTableModel(column_names,3);
table=new JTable(table_model);

我们希望使用上面的代码在column_names中设置包含列名称的标题,但它不起作用。虽然表已创建,但标题仍然不可见。

4 个答案:

答案 0 :(得分:28)

为了能够看到标题,您应该将表放在JScrollPane中。

panel.add(new JScrollPane(table));

或者你可以专门将tableHeader添加到面板中,如果你真的不想要滚动窗格(但是:通常你不想要这种行为):

panel.add(table.getTableHeader(), BorderLayout.NORTH);
panel.add(table, BorderLayout.CENTER);

答案 1 :(得分:2)

阅读JTable API并按照“如何使用表”的Swing教程链接获取工作示例。诀窍是将表添加到JScrollPane。

答案 2 :(得分:2)

See here for more information about JTables and TableModels

当表格位于滚动窗格中时,仅显示JTable标题,这通常是您要执行的操作。如果由于某种原因,您需要显示没有滚动窗格的表格,您可以执行以下操作:

panel.setLayout(new BorderLayout());
panel.add(table, BorderLayout.CENTER);
panel.add(table.getTableHeader(), BorderLayout.NORTH);

答案 3 :(得分:1)

MessageFormat header = null;

if (this.headerBox.isSelected())
{
  header = new MessageFormat(gradesLabel.toString());
}

MessageFormat footer = null;

if (this.footerBox.isSelected())
{
  footer = new MessageFormat(this.footerField.getText());
}

boolean fitWidth = this.fitWidthBox.isSelected();
boolean showPrintDialog = this.showPrintDialogBox.isSelected();
boolean interactive = this.interactiveBox.isSelected();

JTable.PrintMode mode = fitWidth ? JTable.PrintMode.FIT_WIDTH : 
  JTable.PrintMode.NORMAL;
try
{
  boolean complete = this.gradesTable.print(mode, header, footer, 
    showPrintDialog, null, 
    interactive, null);

  if (complete)
  {
    JOptionPane.showMessageDialog(this, 
      "Printing Complete", 
      "Printing Result", 
      1);
  }
  else
    JOptionPane.showMessageDialog(this, 
      "Printing Cancelled", 
      "Printing Result", 
      1);
}
catch (PrinterException pe)
{
  JOptionPane.showMessageDialog(this, 
    "Printing Failed: " + pe.getMessage(), 
    "Printing Result", 
    0);
}

实际上Jtable对象有一个方法,就是print()menthod,用于传递页眉和页脚作为参数进行打印 这里headerBox是Jcheckbox,我在我的程序中创建了一个 而且这里也有一些Jlabels。如果你不需要那意味着从这段代码中删除那些并运行程序