- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
所以我知道这可能是一个重复的问题,但我已经浏览了这里已经存在的许多问题,但似乎没有一个对我有用,所以我想我应该发布自己的问题,希望其他一些遇到此问题的人也会发现这很有帮助。
这是我的代码
table.getColumn("Name").setCellRenderer(
new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
setText(value.toString());
if (row==3)
{
setForeground(Color.RED);
}
return this;
}
}
);
这是 JFrame 中显示的内容。正如您所看到的,我试图只为“名称”列第三行中的文本着色,但它为整行着色。
有什么建议吗?谢谢!迦南
最佳答案
“名称”列的渲染是唯一的。当行为 3 时,您将红色设置为前景色,但您没有为其他行重置它,因此当调用画家时,它总是绘制红色。当行数为 3 时,您必须设置红色,但在其他情况下,您还必须重置原始颜色。
编辑:执行版本。现在原始的前景色被备份,并且使用 super 来像其他列一样渲染。
table.getColumn("Name").setCellRenderer(
new DefaultTableCellRenderer() {
Color originalColor = null;
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
DefaultTableCellRenderer renderer = (DefaultTableCellRenderer) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if (originalColor == null) {
originalColor = getForeground();
}
if (value == null) {
renderer.setText("");
} else {
renderer.setText(value.toString());
}
if (row == 3) {
renderer.setForeground(Color.RED);
} else {
renderer.setForeground(originalColor); // Retore original color
}
return renderer;
}
});
关于java - 尝试为 JTable 中的特定单元格着色... getTableCellRendererComponent 覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40768651/
这是我的第一个 StackOverflow 问题,所以如果我做了/问了一些非常愚蠢的事情,请宽容! 对于 Java,特别是 swing,我是个菜鸟,而且我很难理解 TableCellRenderer
我正在使用 Java swing 开发一个应用程序,我的问题是:如果我添加一个新行,则不会调用 getTableCellRendererComponent ,我的代码: 表的创建: public
为了设置特定表格单元格的颜色,我应该创建一个具有以下方法的自定义 TableCellRenderer:getTableCellRendererComponent。 此方法何时调用:getTableCe
我正在使用自定义单元格渲染器,它实现了 TableCellRenderer 并为每一行显示 JTextArea(而不是 JLabel)。我基本上用我的方法覆盖了 getTableCellRendere
您好,有一个 Jtable,其中有一列具有特定的单元格渲染模型。这种模型,只是在这一列中放置按钮而不是文本数据。 表格的第一个显示效果很好。当我使用更改内容顺序的函数时,仍会为此列调用模型(通过调用
我正在使用 setDefaultTableRenderer 设置 JTable 的渲染器。 JTable table = new JTable(); table.setDefaultRenderer(
我正在尝试实现一个JTable,它将根据单元格的类型来格式化列中的单元格。我正在实现 TableCellRenderer 的“getTableCellRendererComponent()”方法来实现
所以我知道这可能是一个重复的问题,但我已经查看了这里已经存在的许多问题,但似乎没有一个对我有用,所以我想我会发布我自己的问题,并希望发布其他一些问题对此有困难的人也会发现这很有帮助。 这是我的代码
我有一个 JTable 并且它的列之一应该显示图像;我重写了 DefaultTableCellRenderer 的 getTableCellRendererComponent 方法来执行此操作。但问题
所以我知道这可能是一个重复的问题,但我已经浏览了这里已经存在的许多问题,但似乎没有一个对我有用,所以我想我应该发布自己的问题,希望其他一些遇到此问题的人也会发现这很有帮助。 这是我的代码 ta
我正在尝试更改 JTable 中某些单元格的颜色。我尝试在一个简单的示例中重写 getTableCellRendererComponent ,并且效果很好。但是当我在我的项目中做同样的事情时,没有任何
我是一名优秀的程序员,十分优秀!