我使用 cellRenderer 来更改单元格(列)背景颜色,但它也会将单元格值格式更改为图像上的左列,我会将默认格式保留为图像上的右列,这里是我的简单代码:
DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setBackground(Color.ORANGE);
mytable.getColumnModel().getColumn(3).setCellRenderer( centerRenderer );
非常感谢 这是上面描述的图像
最佳答案
您想要创建一个自定义渲染器来格式化数据。
基本逻辑如下:
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对于可重用的类,可以轻松创建数字、百分比、日期等的自定义呈现。
关于java - Cellrenderer 更改单元格背景颜色还更改值格式、对齐方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54195514/