CellRenderer setBackground 替换 JTable 中的 Value
CellRenderer setBackground replaces Value in JTable
所以我想更改特定列的背景颜色。因此,我创建了一个新的 class CellRenderer extends DefaultTableCellRenderer 并重写了方法 getTableCellRendererComponent。它工作正常,当我开始我的项目时颜色发生变化,但我的问题是我还向我的 JTable 添加了一个新的 Object[] 现在我只能看到颜色发生了变化,而不是单元格中的值。
我该如何解决这个问题?
我的 CellRenderer Class 方法 getTableCellRendererComponent
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if(column >= 4 && column <= 9) {
this.setBackground(Color.decode("#5CACEE"));
}else if (column > 9 && column <= 17) {
this.setBackground(Color.decode("#B0E2FF"));
}else {
this.setBackground(Color.decode("#B0C4DE"));
}
return this;
}
我的 Main class 中的构造函数,我将 CellRenderer 设置为我的 JTable
dcr = new MyCellRenderer();
tblData.setDefaultRenderer(Object.class, dcr);
以及我将值添加到 Table
的片段
dtm.addRow(new Object[]{false,"yes","only",ow,"CCSITT3","PANDA_TF001","failed","PANDA","5718200303","1"});
在这里你可以看到 GUI
已修复!指的是这个。而不是组件
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if(column >= 4 && column <= 9) {
c.setBackground(Color.decode("#5CACEE"));
}else if (column > 9 && column <= 17) {
c.setBackground(Color.decode("#B0E2FF"));
}else {
c.setBackground(Color.decode("#B0C4DE"));
}
return c;
}
所以我想更改特定列的背景颜色。因此,我创建了一个新的 class CellRenderer extends DefaultTableCellRenderer 并重写了方法 getTableCellRendererComponent。它工作正常,当我开始我的项目时颜色发生变化,但我的问题是我还向我的 JTable 添加了一个新的 Object[] 现在我只能看到颜色发生了变化,而不是单元格中的值。
我该如何解决这个问题?
我的 CellRenderer Class 方法 getTableCellRendererComponent
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if(column >= 4 && column <= 9) {
this.setBackground(Color.decode("#5CACEE"));
}else if (column > 9 && column <= 17) {
this.setBackground(Color.decode("#B0E2FF"));
}else {
this.setBackground(Color.decode("#B0C4DE"));
}
return this;
}
我的 Main class 中的构造函数,我将 CellRenderer 设置为我的 JTable
dcr = new MyCellRenderer();
tblData.setDefaultRenderer(Object.class, dcr);
以及我将值添加到 Table
的片段dtm.addRow(new Object[]{false,"yes","only",ow,"CCSITT3","PANDA_TF001","failed","PANDA","5718200303","1"});
在这里你可以看到 GUI
已修复!指的是这个。而不是组件
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if(column >= 4 && column <= 9) {
c.setBackground(Color.decode("#5CACEE"));
}else if (column > 9 && column <= 17) {
c.setBackground(Color.decode("#B0E2FF"));
}else {
c.setBackground(Color.decode("#B0C4DE"));
}
return c;
}