我从androids expandableListView做了一些模拟到swing。最近我发现无论何时拖动主框架(旋转),应用程序开始每次旋转平均消耗1mb。它会加班,但有时候不会。当组被调用/关闭时也会发生。 我认为问题就在于我的DTCR制作方式。
setDefaultRenderer(Object.class, new DefaultTableCellRenderer(){
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column) {
super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
System.out.println("One more time");
setBackground(Color.WHITE);
setForeground(Color.GRAY);
setFont(new Font("Arial", Font.BOLD, 14));
for(int i : groups_index){
if(row == i){
setBackground(new Color(64,133,245));
setForeground(Color.WHITE);
setFont(new Font("Calibri", Font.BOLD, 18));
break;
}
}
return this;
}
});
当应用程序启动时,它总是在控制台上打印“再一次”x6,当任何组被调用时,打印额外的7行,并且到时为止会出现一条额外的行。
我真的不明白为什么会打印这么多行,我认为这些行是渲染的细胞。