回覆列表
  • 1 # 使用者9155567858320

    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

  • 中秋節和大豐收的關聯?
  • 如何看待阿里平頭哥釋出的全球最高效能AI晶片「含光800」?這款晶片核心技術是什麼呢?