Listing A包含了一個簡單示例的程式碼,這個示例會說明常用JTable的行為。使用者能夠更改JTable的佈局、拖放它的欄,或者透過拖動標題的分隔線來改變其大小。
這些列被儲存在一個String數組裡:
String[] columnNames = {"Product","Number of Boxes","Price"};
資料被初始化並儲存在一個二維的物件數組裡:
Object[][] data =
{
{"Apples", new Integer(5),"5.00"},
{"Oranges", new Integer(3),"6.00"},
{"Pears", new Integer(2),"4.00"},
{"Grapes", new Integer(3),"2.00"},
};
JTable是使用data和columnNames構成的:
JTable table = new JTable(data, columnNames);
檢視JTable
JTable的高度和寬度按照下面的方法來設定:
table.setPreferredScrollableViewportSize(new Dimension(300, 80));
如果JTable的一個列或者JTable視窗自身的大小被重新確定,那麼其他列會被相應的縮小或者放大,以適應新的視窗。使用setAutoResizeMode()方法就能夠控制這種行為:
table.setAutoResizeMode(int mode);
mode整數字段可能的值有:
AUTO_RESIZE_OFF
AUTO_RESIZE_NEXT_COLUMN
AUTO_RESIZE_SUBSEQUENT_COLUMNS
AUTO_RESIZE_LAST_COLUMN
AUTO_RESIZE_ALL_COLUMNS
表格的預設值
單元格內方格座標線的預設顏色是Color.gray。要更改這些方格座標線的顏色,就要用到:
table.setGridColor(Color.black);
你可以用下面的方法來改變行的高度:
table.setRowHeight(intpixelHeight);
各個單元格的高度將等於行的高度減去行間的距離。
在預設情況下,內容的前景顏色和背景顏色的選擇都是由Swing的所見即所得的實現來確定的。你可以使用下面的方法來更改選擇的顏色:
table.setSelectionBackground(Color.black); table.setSelectionForeground(Color.white);
你也可以隱藏單元格的方格座標線,就像下面這樣:
table.setShowHorizontalLines(false);
table.setShowVerticalLines(false);
列的寬度
JTable元件有幾個控制表格特性的類和介面。TableColumn會不斷追蹤列的寬度,並負責列大小的調整,包括最大和最小寬度。
TableColumnModel管理著TableColumns的集合以及列的選擇。要設定某個列的寬度,就要為表格列的模型設定一個參照。然後,取得想要的TableColumn並呼叫其setPreferredWidth()方法:
TableColumncolumn = table.getColumnModel().getColumn(0);
column.setPreferredWidth(100);
當用戶拖放列的時候,列的索引並不會發生改變。getColumn(0)方法會一直返回正確的列,無論它出現在螢幕的哪個地方。
標題
JtableHeader會處理JTable標題的顯示。你可以細分JtableHeader以獲得自定義的佈局。例如,如果你的應用程式需要一個跨越多個列的標題,那麼只用簡單地細分JtableHeader並將它整合到你的JTable裡就行了。
你可以透過為當前JTable的JtableHeader設定一個參照或者呼叫其setReorderingAllowed()方法,來指定標題的重新排序是否被允許:
table.getTableHeader().setReorderingAllowed(false);
類似地,你可以確信列不會因為在列標題之間拖動而改變大小。要達到這個目的,你就要使用set
Listing A包含了一個簡單示例的程式碼,這個示例會說明常用JTable的行為。使用者能夠更改JTable的佈局、拖放它的欄,或者透過拖動標題的分隔線來改變其大小。
這些列被儲存在一個String數組裡:
String[] columnNames = {"Product","Number of Boxes","Price"};
資料被初始化並儲存在一個二維的物件數組裡:
Object[][] data =
{
{"Apples", new Integer(5),"5.00"},
{"Oranges", new Integer(3),"6.00"},
{"Pears", new Integer(2),"4.00"},
{"Grapes", new Integer(3),"2.00"},
};
JTable是使用data和columnNames構成的:
JTable table = new JTable(data, columnNames);
檢視JTable
JTable的高度和寬度按照下面的方法來設定:
table.setPreferredScrollableViewportSize(new Dimension(300, 80));
如果JTable的一個列或者JTable視窗自身的大小被重新確定,那麼其他列會被相應的縮小或者放大,以適應新的視窗。使用setAutoResizeMode()方法就能夠控制這種行為:
table.setAutoResizeMode(int mode);
mode整數字段可能的值有:
AUTO_RESIZE_OFF
AUTO_RESIZE_NEXT_COLUMN
AUTO_RESIZE_SUBSEQUENT_COLUMNS
AUTO_RESIZE_LAST_COLUMN
AUTO_RESIZE_ALL_COLUMNS
表格的預設值
單元格內方格座標線的預設顏色是Color.gray。要更改這些方格座標線的顏色,就要用到:
table.setGridColor(Color.black);
你可以用下面的方法來改變行的高度:
table.setRowHeight(intpixelHeight);
各個單元格的高度將等於行的高度減去行間的距離。
在預設情況下,內容的前景顏色和背景顏色的選擇都是由Swing的所見即所得的實現來確定的。你可以使用下面的方法來更改選擇的顏色:
table.setSelectionBackground(Color.black); table.setSelectionForeground(Color.white);
你也可以隱藏單元格的方格座標線,就像下面這樣:
table.setShowHorizontalLines(false);
table.setShowVerticalLines(false);
列的寬度
JTable元件有幾個控制表格特性的類和介面。TableColumn會不斷追蹤列的寬度,並負責列大小的調整,包括最大和最小寬度。
TableColumnModel管理著TableColumns的集合以及列的選擇。要設定某個列的寬度,就要為表格列的模型設定一個參照。然後,取得想要的TableColumn並呼叫其setPreferredWidth()方法:
TableColumncolumn = table.getColumnModel().getColumn(0);
column.setPreferredWidth(100);
當用戶拖放列的時候,列的索引並不會發生改變。getColumn(0)方法會一直返回正確的列,無論它出現在螢幕的哪個地方。
標題
JtableHeader會處理JTable標題的顯示。你可以細分JtableHeader以獲得自定義的佈局。例如,如果你的應用程式需要一個跨越多個列的標題,那麼只用簡單地細分JtableHeader並將它整合到你的JTable裡就行了。
你可以透過為當前JTable的JtableHeader設定一個參照或者呼叫其setReorderingAllowed()方法,來指定標題的重新排序是否被允許:
table.getTableHeader().setReorderingAllowed(false);
類似地,你可以確信列不會因為在列標題之間拖動而改變大小。要達到這個目的,你就要使用set