gpt4 book ai didi

java - 如何在没有单例的情况下使用 JTable 单元格渲染器?

转载 作者:行者123 更新时间:2023-12-02 05:03:26 26 4
gpt4 key购买 nike

我正在使用 DefaultTableCellRenderer 为表的行着色。行的颜色并不是所显示的表数据所固有的,它是用于构建表的基础数据的属性。我使用表模型来提供来自基础数据的单元格数据(显式传递到表模型,并小心地避免线程问题。)

在渲染器中,我需要访问底层数据或表模型。目前,我可以使用静态或单例,但将来这可能并不理想。

从渲染器访问我的数据的正确方法是什么?我的渲染器是这样的:

class SummaryTableCellRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) {

Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col);

... access my data here to derive color ...

c.setBackground(color);
return c;
}
}

我希望可以使用 table.getModel() 获取表模型,但这会返回一个我无法转换为表模型的类型(它扩展了 AbstractTableModel,而不是 TableModel,后者是一个接口(interface)。)

出于兼容性原因,我使用 JavaSE-1.6(以防万一)。谢谢!

最佳答案

getTableCellRendererComponent 方法在调用时会传递一个 JTable 的引用...

public Component getTableCellRendererComponent(JTable table, Object value, boolean   isSelected, boolean hasFocus, int row, int col) {

为什么不直接使用它来获取对 TableModel 的引用...

TableModel model = table.getModel();

现在,根据您的需要,您可能需要将其转换为 TableModel 的实现

关于java - 如何在没有单例的情况下使用 JTable 单元格渲染器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28033310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com