我使用cellRenderer更改单元格(列)的背景颜色,但是它也使单元格值格式更改为图像上的LEFT列,我将默认格式保留为图像上的RIGHT列,这里是我的简单代码:< / p>
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setBackground(Color.ORANGE);
mytable.getColumnModel().getColumn(3).setCellRenderer( centerRenderer );
非常感谢你 这是上面描述的图片
答案 0 :(得分:0)
最好扩展BasicTableCellRenderer以重新添加这些特定样式,因为basic将具有最低限度的样式。
class CustomTableCellRenderer extends BasicTableCellRenderer {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
// Add style logic here
return this;
}
}
答案 1 :(得分:0)
您要创建一个自定义渲染器,以允许您格式化数据。
基本逻辑如下:
public class IntegerRenderer extends DefaultTableCellRenderer
{
private Format formatter = new NumberFormage.getIntegerInstance();
public IntegerRenderer()
{
setHorizontalAlignment( SwingConstants.RIGHT );
}
public void setValue(Object value)
{
// Format the Object before setting its value in the renderer
try
{
if (value != null)
value = formatter.format(value);
}
catch(IllegalArgumentException e) {}
super.setValue(value);
}
}
然后,您只需设置渲染器的背景颜色即可。
检出Table Format Renderers中可重用的类,这些类使创建数字,百分比,日期等的自定义渲染变得容易。