下周完我就工作滿一年啦。回想大部分的時(shí)間都被好奇心給占去了,這個組件好玩弄一下,那個好玩也弄一下,最后手里還是什么都沒得,而本身的工作是基于swing,倒是沒花多少精力,最后也是對swing一知半解,今天想研究研究下talbe,卻發(fā)現(xiàn)被這么個問題給卡住了。
是這樣的給TableModel傳入表頭和內(nèi)容,但是直接將table加到frame中去,table顯示不了表頭如圖1,但是將table放到JScrollPane中去,卻能顯示,如圖2。

圖一
圖二
為什么這樣?實(shí)在是弄不明白,不知道有那位高手指點(diǎn)下不?
源碼如下:
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);
}
}
