Swing:在表格中闪烁特定单元格的计算效率最高的方法
Posted
技术标签:
【中文标题】Swing:在表格中闪烁特定单元格的计算效率最高的方法【英文标题】:Swing: most computationally-efficient way to blink particular cells in a table 【发布时间】:2012-03-26 07:26:58 【问题描述】:我需要一种方法来引起对大型 JTable(20x16!)中特定单元格的注意,并且我想知道文本闪烁需要什么,例如开启 900 毫秒,关闭 100 毫秒。
(我熟悉TableCellRenderer
的概念)
有没有办法只对有问题的单元格执行此操作,而不会导致所有单元格重绘?
【问题讨论】:
那么你必须阅读这个interesting thread,请整个线程,也由 (@kleopatra) 回答,而不仅仅是 (@Hovercraft Full Of Eels :-) 的链接帖子 :-)JTable
的享元渲染已经相当高效,但另请参阅 Christmas Tree Applications。
同意!谢谢 - 请作为答案发布
“一个大的 JTable (20x16!)” 20 x 16 = 320
,但20 x 16! = 502146957312000
。请澄清。
【参考方案1】:
所需的占空比(900 毫秒开启,100 毫秒关闭)和计数 (20 x 16) 完全在 JTable
渲染的能力范围内,它使用 flyweight pattern 来提高效率。在分析权证的极少数情况下,请参阅文章Christmas Tree Applications。另请参阅 comparison 与 prepareRenderer()
方法。
附录:还要考虑JLabel
中的GridLayout
,每个按钮都有自己的javax.swing.Timer
实例以避免同步闪烁。计时器共享一个公共线程。
【讨论】:
arrgghh ...又是那篇旧文章...请注意,它的底线是:获得我们可能尝试的任何肮脏的捷径并不多 :-)以上是关于Swing:在表格中闪烁特定单元格的计算效率最高的方法的主要内容,如果未能解决你的问题,请参考以下文章