DefaultTableCellRenderer和内存使用情况

时间:2016-04-27 07:39:01

标签: java swing memory tablecellrenderer

我从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行,并且到时为止会出现一条额外的行。

printed lines

我真的不明白为什么会打印这么多行,我认为这些行是渲染的细胞。

0 个答案:

没有答案