我正在使用一个实现TableCellRenderer的自定义单元格渲染器,并为每一行显示JTextArea(而不是JLabel).我基本上覆盖了我的getTableCellRendererComponent(...)方法,每行进行一些额外的计算.每个表更新只需执行一次这些计算.由于每次鼠标移动都会调用getTableCellRendererComponent方法,因此会发生滞后.所以我认为我应该阻止调用getTableCellRendererComponent以避免延迟.
注意事项:
1)我的表只有1列,没有标题.
2)我的数据是静态的,并通过实现AbstractTableModel的自定义tablemodel类中的getValueAt(int row,int column)方法从ArrayList读取.
3)我不需要观察鼠标运动事件.
4)我不期望有太多数据,所以我可能想要一次显示整个表或完全缓存它.
5)大多数滞后是由每次从getTableCellRendererComponent返回时设置文本引起的,因为有些行使用从右到左的字符,而RTL文本需要额外的时间来渲染.
我们真的需要Java中的静态最终常量吗?
假设我有以下代码:
public class Test {
public static final int A = 1234;
public static int getA()
{
return 1234;
}
}
Run Code Online (Sandbox Code Playgroud)
您能否就效率方面比较以下两种情况?
Test.A
Test.getA()