- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用自定义单元格渲染器,它实现了 TableCellRenderer 并为每一行显示 JTextArea(而不是 JLabel)。我基本上用我的方法覆盖了 getTableCellRendererComponent(...) 方法,它每行做一些额外的计算。这些计算必须在每次表更新时进行一次。由于每次鼠标移动都会调用 getTableCellRendererComponent 方法,因此会出现延迟。所以我认为我应该阻止调用 getTableCellRendererComponent 以避免延迟。
注意事项:
1) 我的表格只有 1 列并且没有标题。
2) 我的数据是静态的,通过实现 AbstractTableModel 的自定义表模型类中的 getValueAt(int row, int column) 方法从 ArrayList 中读取。
3) 我不需要监视鼠标移动事件。
4) 我不希望有太多数据,所以我可能想一次显示整个表或完全缓存它。
5) 大多数延迟是由每次从 getTableCellRendererComponent 返回时设置文本引起的,因为有些行使用从右到左的字符,并且 RTL 文本需要额外的时间来呈现。
最佳答案
不要试图限制 getTableCellRendererComponent
调用的次数。相反,通过缓存计算结果来更好地实现渲染器。
您可以轻松地向表模型添加一个监听器,以便您的渲染器知道模型何时更新。只有这样它才应该标记存储的计算结果无效,并在下一次调用 getTableCellRendererComponent
时重新计算它们。
关于java - 减少 getTableCellRendererComponent 的调用次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12153452/
这是我的第一个 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 ,并且效果很好。但是当我在我的项目中做同样的事情时,没有任何
我是一名优秀的程序员,十分优秀!