作者willieliao (Willie Liao)
看板java
标题Re: [问题] 如何改变JTable的Row Color?
时间Fri May 11 13:35:01 2007
您可以自己写一个cellrender,取代原来table的default cell renderer
敝公司的产品中某table有跟您一样的功能(只是是用ENUM),我是重写一个CELL
RENDERER,CODE给你参考
ublic class EnumExecutionStatusCellRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
Component cell = super.getTableCellRendererComponent(table,
value, isSelected, hasFocus, row, column);
if (value instanceof EnumExecutionStatus) {
if (status == EnumExecutionStatus.COMPLETED)
cell.setForeground(new Color (0, 150, 0));
...Some more code here
if (isSelected)
cell.setForeground(Color.WHITE);
}
return cell;
}
}
※ 引述《bypang (青菜萝卜)》之铭言:
: 请问如何根据某一Column的boolean值
: 把对应的Row做颜色的改变?
: 我尝试把每一个cell都做一次update,不过出现的结果
: 是每一个cell都一样颜色???
: // ptm是extends DefaultTableModel
: for(int i = 0; i < ptm.getRowCount(); i++) {
: boolean isEnabled = Boolean.parseBoolean(ptm.getValueAt(i,
: 5).toString());
: for(int j = 0; j < ptm.getColumnCount(); j++) {
: DefaultTableCellRenderer renderer =
: (DefaultTableCellRenderer)product_tb.getCellRenderer(i, j);
: if(isEnableed) {
: //System.out.println(i + ", j should be BLUE." );
: //印出来的跟显示出来的不一样
: renderer.setBackground(Color.BLUE);
: } else {
: //System.out.println(i + ", j should be WHITE. " );
: renderer.setBackground(Color.WHITE);
: }
: }
: }
: 困扰了很久,希望各位先进不吝赐教,谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 68.49.28.120
※ 编辑: willieliao 来自: 68.49.28.120 (05/11 13:41)