当前位置:首页 » 网上购物 » java怎样将面板只显示颜色
扩展阅读
经痛是什么原因 2024-12-18 11:30:21
纤毛菌怎样治疗效果最好 2024-12-18 11:09:54

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)