當前位置:首頁 » 網上購物 » java怎樣將面板只顯示顏色
擴展閱讀
蘋果手機怎樣抬頭 2024-12-18 12:44:57
手機怎樣剪圖片大小 2024-12-18 12:39:09

java怎樣將面板只顯示顏色

發布時間: 2024-12-18 09:03:07

A. java swing控制項JTable 怎麼單獨設置某一行的顏色

這是我以前做的:

(JTabletable,Objectvalue,

booleanisSelected,booleanhasFocus,introw,intcolumn)

{

//如果是圖標,就要顯示圖標,否則就顯示文本

if(valueinstanceofIcon)

this.setIcon((Icon)value);

else

this.setText(value.toString());

//如果被選中

if(isSelected)

//設置選定單元格的背景色。單元格渲染器可以使用此顏色填充選定單元格。

//返回選定單元格的背景色。

super.setBackground(table.getSelectionBackground());

else

this.setBackground(table.getBackground());

//設置居中

this.setHorizontalAlignment(JLabel.CENTER);

this.setToolTipText(value.toString());

returnthis;

}

ps.要在JTable中添加這個渲染器。

樣式:


附:自己多查API

javax.swing.table.TableCellRenderer

此介面定義了要成為JTable中單元格渲染器的任意對象所需的方法


(JTabletable,

Objectvalue,

booleanisSelected,

booleanhasFocus,

introw,

intcolumn)返回用於繪制單元格的組件。此方法用於在繪制前適當地配置渲染器。

TableCellRenderer還負責呈現表示該表當前DnD放置位置的單元格(如果有)。如果此呈現器負責呈現DnD放置位置,則它應該直接查詢表以確定給定的行和列是否表示放置位置:

JTable.DropLocationdropLocation=table.getDropLocation();

if(dropLocation!=null

&&!dropLocation.isInsertRow()

&&!dropLocation.isInsertColumn()

&&dropLocation.getRow()==row

&&dropLocation.getColumn()==column){


//

//sorenderitspecially,perhapswithadifferentcolor

}

在列印操作期間,將調用此方法(isSelected和hasFocus為

false)阻止選擇和焦點在列印輸出中出現。要根據是否列印表進行其他定製,檢查JComponent.isPaintingForPrint()

的返回值。

參數:table-要求渲染器繪制的JTable;可以為nullvalue-要呈現的單元格的值。由具體的渲染器解釋和繪制該值。例如,如果value是字元串

"true",則它可呈現為字元串,或者也可呈現為已選中的復選框。null是有效值

isSelected-如果使用選中樣式的高亮顯示來呈現該單元格,則為true;否則為false

hasFocus-如果為

true,則適當地呈現單元格。例如,在單元格上放入特殊的邊框,如果可以編輯該單元格,則以彩色呈現它,用於指示正在進行編輯

row-要繪制的單元格的行索引。繪制頭時,row值是-1

column-要繪制的單元格的列索引

javax.swing.JTable#getColumn

publicTableColumngetColumn(Objectidentifier)返回表中列的TableColumn對象,當使用equals進行比較時,表的標識符等於

identifier。


javax.swing.table.TableColumn#setCellRenderer

publicvoidsetCellRenderer(TableCellRenderercellRenderer)