不知大家发现没有《用java创建表格的两种形式(1)》中的表格每列没有标题,这篇笔记中就介绍如何给每列加标题,先看我加过标题的源程序:
import javax.swing.table.AbstractTableModel;
import java.awt.*;
import javax.swing.*;
public class TableValues extends AbstractTableModel{
public final static String[] columnNames={"第一列","第二列","第三列","第四列","第五列"};//注意(1)
public int[][] values = {{1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7},{4,5,6,7,8}};
public int getRowCount() {
return values.length;
}
public int getColumnCount() {
return values[0].length;
}
public Object getValueAt(int rowIndex, int columnIndex) {
return values[rowIndex][columnIndex];
}
public String getColumnName(int column){//注意(2)
return columnNames[column];
}
}
public class SimpleTableTest extends JFrame{
public SimpleTableTest() {
Container pane = getContentPane();
pane.setLayout(new BorderLayout());
TableValues tv = new TableValues();
table =new JTable(tv);
//pane.add(table,BorderLayout.CENTER);
JScrollPane jsp = new JScrollPane(table);//注意(3)
pane.add(jsp,BorderLayout.CENTER);//注意(4)
}
protected JTable table;
public static void main(String[] args){
SimpleTableTest stt = new SimpleTableTest();
stt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
stt.setSize(400, 200);
stt.setVisible(true);
}
}
运行结果:
通过注意(1)的格式把每列名字写入columnNames可以换成其他名字,注意(2)必须写,如不写列名就会变成默认的A、B、C、D...,JScrollPane提供了对列标题的支持,所以让表格在JScrollPane中显示,如注意(3),然后把JScrollPane加入窗口中,如注意(4)。