Java 如何更改JTable中第一个单元格的背景色?
一切都好吗 我的java应用程序中有下表。 根据状态,他使线条具有某种颜色,我将在下面的代码中显示 我想要的是,只有第一列是彩色的,其他列希望以默认颜色显示Java 如何更改JTable中第一个单元格的背景色?,java,swing,jtable,Java,Swing,Jtable,一切都好吗 我的java应用程序中有下表。 根据状态,他使线条具有某种颜色,我将在下面的代码中显示 我想要的是,只有第一列是彩色的,其他列希望以默认颜色显示 public class PriorityCellRenderer extends DefaultTableCellRenderer { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean i
public class PriorityCellRenderer extends DefaultTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(
table, value, isSelected, hasFocus, row, column);
//if (Integer.valueOf(1).equals(table.getValueAt(row, 1)) && 0 == column) && 9 < column)
if (String.valueOf(1).equals(table.getValueAt(row, 0))) {
setForeground(Color.BLUE); // or background
}
if (String.valueOf(2).equals(table.getValueAt(row, 0))) {
setForeground(Color.GREEN); // or background
}
if (String.valueOf(3).equals(table.getValueAt(row, 0))) {
setForeground(Color.YELLOW); // or background
}
if (String.valueOf(4).equals(table.getValueAt(row, 0))) {
setForeground(Color.RED); // or background
}
return this;
}
}
公共类PriorityCellRenderer扩展了DefaultTableCellRenderer{
@凌驾
公共组件GetTableCellRenderComponent(JTable表、对象值、,
布尔值(已选择,布尔值为焦点,整数行,整数列){
super.getTableCellRenderComponent(
表、值、isSelected、hasFocus、行、列);
//if(Integer.valueOf(1).equals(table.getValueAt(行,1))&&0==列)和&9<列)
if(String.valueOf(1).equals(table.getValueAt(行,0))){
设置前景(Color.BLUE);//或背景
}
if(String.valueOf(2).equals(table.getValueAt(行,0))){
设置前景(Color.GREEN);//或背景
}
if(String.valueOf(3).equals(table.getValueAt(行,0))){
设置前景(颜色.黄色);//或背景
}
if(String.valueOf(4).equals(table.getValueAt(行,0))){
设置前景(Color.RED);//或背景
}
归还这个;
}
}
意识到我的问题了吗
有人能帮我吗
多谢各位
table.getColumnModel().getColumn(COLUMN_INDEX).setCellRenderer(new PriorityCellRenderer());
getTableCellRenderComponent()
validate column indexif(column==column\u index)
table.getColumnModel().getColumn(COLUMN_INDEX).setCellRenderer(new PriorityCellRenderer());
getTableCellRenderComponent()
validate column indexif(column==column\u index)
删除其他的if?应该是:
if(0==列)setBackground(Color.RED)
谢谢大家的回复。我试过这样做:if(String.valueOf(1).equals(table.getValueAt(row,0))&&column==0){setForeground(Color.BLUE);}但结果是一样的。删除其他if?应该是:if(0==column)setBackground(Color.RED)
谢谢大家的回复。我试过这样做:if(String.valueOf(1).equals(table.getValueAt(row,0))&&column==0{setForeground(Color.BLUE);}但结果是一样的。谢谢你的帮助,先生:)代码发布,描述了qeustion是prepareRenderer()的工作@mKorbel,你是对的,这可以在prepareRenderer()中完成JTable的方法JTable的方法