小编Ahm*_*tan的帖子

减少getTableCellRendererComponent调用的数量

我正在使用一个实现TableCellRenderer的自定义单元格渲染器,并为每一行显示JTextArea(而不是JLabel).我基本上覆盖了我的getTableCellRendererComponent(...)方法,每行进行一些额外的计算.每个表更新只需执行一次这些计算.由于每次鼠标移动都会调用getTableCellRendererComponent方法,因此会发生滞后.所以我认为我应该阻止调用getTableCellRendererComponent以避免延迟.

注意事项:

1)我的表只有1列,没有标题.

2)我的数据是静态的,并通过实现AbstractTableModel的自定义tablemodel类中的getValueAt(int row,int column)方法从ArrayList读取.

3)我不需要观察鼠标运动事件.

4)我不期望有太多数据,所以我可能想要一次显示整个表或完全缓存它.

5)大多数滞后是由每次从getTableCellRendererComponent返回时设置文本引起的,因为有些行使用从右到左的字符,而RTL文本需要额外的时间来渲染.

java swing jtable tablecellrenderer

5
推荐指数
1
解决办法
604
查看次数

使用返回常量值的方法

我们真的需要Java中的静态最终常量吗?

假设我有以下代码:

public class Test {

    public static final int A = 1234;

    public static int getA()
    {
        return 1234;
    }
}
Run Code Online (Sandbox Code Playgroud)

您能否就效率方面比较以下两种情况?

  1. Test.A

  2. Test.getA()

java

5
推荐指数
1
解决办法
2996
查看次数

标签 统计

java ×2

jtable ×1

swing ×1

tablecellrenderer ×1