天天看點

swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件

swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件

   1.總結一下:

  1. 1.   樣式的話,通過表格的渲染器改變,而功能的改變(例如添加組合框控件,資料變成組合框選中的—表格編輯器實作)
  2. 2.    想要實作:選中顔色,代表顔色就改變為選中的顔色:添加事件
  3. 3.    對于組合框有點小問題:選中後會調用兩次方法,因為組合框有兩種狀态:選中狀态和取消狀态,是以事件中需要判斷組合框的狀态,然後再實作組合框的選中事件,就解決問題啦

 2.效果:

swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件

3.實作細節:

3-1、

swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件

3-2、執行個體化一個表格:JTable, 執行個體的時候沒有傳入參數,想要後邊通過mode 來重新設定表格控件的表頭和資料。

swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件

(ps:為了有表頭的樣式,先把表格控件添加到滾動面闆裡,然後再添加到内容面闆。)

3-3. 定義二維數組Object[ ][ ]的資料 和 String[ ] 的表頭名稱,用來作為參數傳入後邊的mode表格模式。

swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件

 3-4.    通過封裝一個方法來設定表格模式,方法裡,執行個體了DefaultTableMode預設的模式,并且把資料和表頭名稱作為參數傳入,然後通過表格的 .setModel(模式對象) 來設定表格模式。

swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件

樣子:

swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件

(不夠完美,是以我們選擇了UIManager管理器來設定控件的樣式)

3-5 、  先設定表格和表頭中的字型樣式:

通過UIManger.put(key, value); 把表格字型Table.font / TableHeader.font 作為參數key傳入, Font對象作為value傳入。

swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件

 3-6.    看一下,如果表格格子太窄了,就設定一下表格的行高像素:

通過.setRowHeight(像素);

swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件

3-7.

swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件

(不完美,是以我們需要渲染器渲染顯示出顔色)

3-8、    因為要重寫的内容很多,是以外部類啦,外部類繼承DefaultTableCellRenderer,然後重寫setValue函數,判斷如果值value是Color類型則設定為背景顔色。

swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件

3-9、   然後擷取表格中我們想要的那一列,給它設定上我們的渲染器(通過.getColumn(“目标列”).setCellRenderer(渲染器對象) )。

swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件

3-10.

swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件

解決:

swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件

  3-11、 渲染器隻能渲染,改變外觀。想要修改功能,通過.setCellEditor(單元格編輯器)。

swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件

3-12、想要實作選擇下拉清單框後選中顔色,能夠修改顔色---添加事件

3-13. 下拉清單框的話有點小問題:就是選完選項,方法會被調用兩次。

因為:

swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件
swing表格JTalble添加資料(資料類型實作自定類型,如顔色,組合框等控件)還有實作控件的功能—添加事件

參考自:老九學堂java線上課程第17章swing《JTable 擴充》