下周完我就工作满一年啦。回想大部分的时间都被好奇心给占去了,这个组件好玩弄一下,那个好玩也弄一下,最后手里还是什么都没得,而本身的工作是基于swing,倒是没花多少精力,最后也是对swing一知半解,今天想研究研究下talbe,却发现被这么个问题给卡住了。
是这样的给TableModel传入表头和内容,但是直接将table加到frame中去,table显示不了表头如图1,但是将table放到JScrollPane中去,却能显示,如图2。
图一
图二
为什么这样?实在是弄不明白,不知道有那位高手指点下不?
源码如下:
package kissJava.JTable;
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
public class TestSortedTable {
public static void main(String args[]){
JFrame frame = new JFrame("JTable的header测试");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Object rows[][] ={
{ "王明", "中国", 44 },
{ "姚明", "中国", 25 },
{ "赵子龙", "西蜀", 1234 },
{ "曹操", "北魏", 2112 },
{ "Bill Gates", "美国", 45 },
{ "Mike", "英国", 33 } };
String columns[] = { "姓名", "国籍", "年龄" };
TableModel model = new DefaultTableModel(rows, columns);
JTable table = new JTable(model);
RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
table.setRowSorter(sorter);
JScrollPane pane = new JScrollPane(table);
frame.add(pane, BorderLayout.CENTER);//显示header
// frame.add(table, BorderLayout.CENTER);//不显示header
frame.setSize(300, 150);
frame.setVisible(true);
}
}