- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的java应用程序中,我想设置颜色以及选择它时的行为。为此,我编写了 TableCellRenderer 的自定义实现,它可以按我想要的方式工作。但有件事我还是很困惑......
这是TableCellRenderer
的实现:
public class AccountMovementTableCellRenderer extends JLabel implements TableCellRenderer{
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){
//My implementation here...
return this;
}
}
这里是JTable
的创建:
AccountMovementTableCellRenderer accountMovementCellRenderer = new AccountMovementTableCellRenderer();
entryTable = new JTable(entryModel){
private static final long serialVersionUID = 1L;
@Override
public TableCellRenderer getCellRenderer(int row, int column){
return accountMovementCellRenderer;
}
};
我只创建了一个 CellRenderer 实例,但我原本期望每个单元格有一个 CellRenderer,但我很惊讶它竟然以这种方式工作...每个单元格的内容和颜色都不同,但它始终使用相同的 CellRenderer 实例,那么这怎么行呢?
最佳答案
TableCellRenderer.prepareRenderer
返回的组件被重用来渲染 JTable
的内容 - 在您的情况下,您的渲染器扩展了 JLabel
(您可以只扩展 DefaultTableCellRenderer
) - 此 JLabel 用于绘制 JTable
的内容。 prepareRenderer
方法用于在渲染之前为每个单元格自定义 JLabel。引用Oracle's tutorial on the JTables
You might expect each cell in a table to be a component. However, for performance reasons, Swing tables are implemented differently.
Instead, a single cell renderer is generally used to draw all of the cells that contain the same type of data. You can think of the renderer as a configurable ink stamp that the table uses to stamp appropriately formatted data onto each cell. When the user starts to edit a cell's data, a cell editor takes over the cell, controlling the cell's editing behavior.
关于java - 使用自定义 TableCellRenderer 的 Swing JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39153879/
我有 2 列的 jTable1。我想控制第 1 列的外观,因此我使用以下代码根据单元格行是偶数还是奇数来将单元格中的文本字体设置为粗体或不粗体。 import java.awt.Component;
我能找到的所有自定义示例 TableCellRenderer似乎都在扩展DefaultTableCellRenderer .我想这没什么不妥,除了您无法扩展当前外观的 TableCellRendere
我想实现一个 JTable 组件的 tablecellrenderer,它应该根据单元格数据显示不同的颜色。我明白了,但我无法更改所选单元格的颜色。我试着这样做: public Component g
我有一个包含四列的 JTable。我正在尝试将其中一列的标题居中对齐。我得到了一个半工作的解决方案,但问题是标题的默认呈现/样式似乎丢失了。见截图。我想获取当前的 TableCellRenderer,
我有一个绑定(bind)到 JTable 的 ArrayList。之后 bindingGroup.unbind(); bindingGroup.bind(); (完成刷新数据)我丢失了表格单元格渲
我正在尝试能够为 JTable 中的单独单元格着色,但到目前为止我只能在整个列上应用 TableCellRenderer,这显然会出现故障。我有一个自定义 JTable: public class J
简单的问题,但我似乎无法在网上找到答案。 如何使用自定义 TableCellRenderer 以粗体显示某些表格单元格? 我知道如何使用 TableCellRenderer 逐个单元格设置背景颜色。你
我正在尝试在 JTable 列上设置 JProgressbar 单元格渲染器。问题是,我的表格单元格上不会显示任何进度条,它只显示进度值。 这是我的 TableModel: public class
我正在尝试使用此教程代码将按钮添加到 JTable 的最后一列: http://www.java2s.com/Code/Java/Swing-Components/ButtonTableExample
尝试将 tablecellrenderer 应用于列。我需要三个不同的图标,分别用于文件夹、zip\rar 文件等。 我该如何设置它们? If 子句(if f.isDirectory()) 根本不起作
大家好,我的程序中遇到以下问题。我有几个按列应用的 tablecellrenderer。问题是,如果某列在我的表中出现两次,则单元渲染器将无法工作,并且两列均未格式化。我也无法更改列名称,因为我的客户
我试图进行检查,如果单元格 3 的值不为空,则整行将被着色为绿色,但是这不会执行任何操作,但是,如果我不进行检查,则仅检查以确保没有任何内容已选择(以便选择会给出颜色以表明您确实选择了)所有内容都绘制
给定一个javax.swing.table.TableColumn...是否可以通过某种方式指定用于给定类型的TableCellRenderer/TableCellEditor,而不是让TableCo
我有一个包含三列字符串的表。我希望最后一列具有绿色背景和粗体字体。所以我想我需要一个自定义的 TableCellRenderer。但是,当我调用 table.setDefaultRenderer 时,
我有一个扩展 DefaultTableCellRenderer 的类,它以等宽字体呈现具有特定颜色的字符串。默认情况下,似乎根本不呈现选项卡(0 个空格)。如何设置选项卡大小和/或使它们呈现? 编辑:
我尝试学习 JTables TableCellRenderer,但有些东西我不明白。也许你们中的一个可以帮助我。 请看一下我在网上找到的这个例子: http://www.java2s.com/Tuto
我使用自定义的 DefaultTableCellRenderer 创建了一个简单的 JTable。它本身工作正常(最后一列着色)。但是,一旦我选择一行或过滤/取消过滤它,该行就会被着色,即使它根本不应
我正在尝试在 jtable 上实现自定义 TableCellRenderer。该表设置为 100 行和 100 列。该表应包含指定字体的所有字形。我的问题是,当表中的值不完整时,它会在第一列中放置最后
我正在实现 TableCellRenderer 以在最后一个值是否为特定值时做出明显的区别。 所以,这些实现的代码是: TableColumnModel tcm = table.getColu
我有一个 JTable,我希望能够更改单击的单个单元格的颜色。 这是我的代码的简化版本: public class TableFrame extends JFrame { public Tab
我是一名优秀的程序员,十分优秀!