• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jiangxincode / ApkToolBoxGUI / #1207

13 Sep 2025 11:58PM UTC coverage: 2.895% (-0.006%) from 2.901%
#1207

push

jiangxincode
fix #569: 可能在完全初始化子类之前逃逸了 'this'

0 of 32 new or added lines in 22 files covered. (0.0%)

9 existing lines in 8 files now uncovered.

248 of 8567 relevant lines covered (2.89%)

0.03 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/main/java/edu/jiangxin/apktoolbox/swing/treetable/MyTreeTableCellRenderer.java
1
package edu.jiangxin.apktoolbox.swing.treetable;
2

3
import java.awt.Component;
4
import java.awt.Graphics;
5
import java.io.Serial;
6

7
import javax.swing.JTable;
8
import javax.swing.JTree;
9
import javax.swing.table.TableCellRenderer;
10
import javax.swing.tree.TreeModel;
11

12

13
public class MyTreeTableCellRenderer extends JTree implements TableCellRenderer {
14
    @Serial
15
    private static final long serialVersionUID = 1L;
16

17
    /** Die letzte Zeile, die gerendert wurde. */
18
    protected int visibleRow;
19

20
    private MyTreeTable treeTable;
21

22
    public MyTreeTableCellRenderer(MyTreeTable treeTable, TreeModel model) {
23
        super(model);
×
24
        this.treeTable = treeTable;
×
NEW
25
    }
×
26

27
    // in case of escape of "this"
28
    public void initialize() {
29
        // Setzen der Zeilenhoehe fuer die JTable
30
        // Muss explizit aufgerufen werden, weil treeTable noch
31
        // null ist, wenn super(model) setRowHeight aufruft!
32
        setRowHeight(getRowHeight());
×
33
    }
×
34

35
    /**
36
     * Tree und Table muessen die gleiche Hoehe haben.
37
     */
38
    public void setRowHeight(int rowHeight) {
39
        if (rowHeight > 0) {
×
40
            super.setRowHeight(rowHeight);
×
41
            if (treeTable != null && treeTable.getRowHeight() != rowHeight) {
×
42
                treeTable.setRowHeight(getRowHeight());
×
43
            }
44
        }
45
    }
×
46

47
    /**
48
     * Tree muss die gleiche Hoehe haben wie Table.
49
     */
50
    public void setBounds(int x, int y, int w, int h) {
51
        super.setBounds(x, 0, w, treeTable.getHeight());
×
52
    }
×
53

54
    /**
55
     * Sorgt fuer die Einrueckung der Ordner.
56
     */
57
    public void paint(Graphics g) {
58
        g.translate(0, -visibleRow * getRowHeight());
×
59

60
        super.paint(g);
×
61
    }
×
62

63
    /**
64
     * Liefert den Renderer mit der passenden Hintergrundfarbe zurueck.
65
     */
66
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
67
        if (isSelected)
×
68
            setBackground(table.getSelectionBackground());
×
69
        else
70
            setBackground(table.getBackground());
×
71

72
        visibleRow = row;
×
73
        return this;
×
74
    }
75
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc