gpt4 book ai didi

java - 减少 getTableCellRendererComponent 的调用次数

转载 作者:搜寻专家 更新时间:2023-10-31 19:48:06 26 4
gpt4 key购买 nike

我正在使用自定义单元格渲染器,它实现了 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/

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