java - Cellrenderer 更改单元格背景颜色还更改值格式、对齐方式

标签 java swing colors jtable tablecellrenderer

我使用 cellRenderer 来更改单元格(列)背景颜色,但它也会将单元格值格式更改为图像上的左列,我会将默认格式保留为图像上的右列,这里是我的简单代码:

DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
centerRenderer.setBackground(Color.ORANGE);
mytable.getColumnModel().getColumn(3).setCellRenderer( centerRenderer );

非常感谢 这是上面描述的图像

enter image description here

最佳答案

您想要创建一个自定义渲染器来格式化数据。

基本逻辑如下:

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/

相关文章:

r - Wordcloud 基于 R 中的连续元数据显示颜色

html - 编辑 main.css 时更改页脚背景颜色不起作用

Java Swing 定时器不清晰

java - 是否可以通过将 "new Object()"转换为泛型类来实例化泛型类?

java - Set.contains() 如何决定它是否是一个子集?

java - 如何在 Java 8 的 lambda 表达式中使用条件?

每次我停止点击时,Java 点击计数器都会重置

java - 如何使按钮从第一个 JTabbedPanel 移动到下一个?

java - 在程序运行时显示 System.out/err 的 Swing 控制台窗口

android - 更改 android 操作栏的背景颜色,基本教程