下面的示例代碼:如何爲JTable設置標題?
String column_names[]= {"Serial Number","Medicine Name","Dose","Frequency"};
table_model=new DefaultTableModel(column_names,3);
table=new JTable(table_model);
我們要設置頁眉與列的名稱作爲在上面的代碼COLUMN_NAMES,但它無法正常工作。儘管表已創建,但標題不可見。
下面的示例代碼:如何爲JTable設置標題?
String column_names[]= {"Serial Number","Medicine Name","Dose","Frequency"};
table_model=new DefaultTableModel(column_names,3);
table=new JTable(table_model);
我們要設置頁眉與列的名稱作爲在上面的代碼COLUMN_NAMES,但它無法正常工作。儘管表已創建,但標題不可見。
爲了能夠看到標題,你應該把表放在一個JScrollPane中。
panel.add(new JScrollPane(table));
或者你也可以的tableHeader專門添加到面板上,如果你真的不想要一個滾動窗格(但:通常你不希望這種行爲):
panel.add(table.getTableHeader(), BorderLayout.NORTH);
panel.add(table, BorderLayout.CENTER);
閱讀JTable的API並按照「如何使用表格」Swing教程的鏈接進行操作。訣竅是將表添加到JScrollPane。
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);
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的對象有一個方法,這是印刷()menthod,這是用來傳遞頁眉和頁腳作爲參數打印 這裏的headerBox是Jcheckbox,其中一個是我在我的程序 中創建的,這裏也有一些Jlabels。如果您不需要這種方法,請從該代碼中刪除這些代碼並運行該程序
根據指導原則,您應該使用camelCase而不是'_':tableModel和columnNames。請參閱http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html – Fortega 2010-02-19 16:55:12