View Javadoc
1   package edu.jiangxin.apktoolbox.swing.treetable;
2   
3   import java.awt.Dimension;
4   import java.io.Serial;
5   
6   import javax.swing.JTable;
7   
8   public class MyTreeTable extends JTable {
9       @Serial
10      private static final long serialVersionUID = 1L;
11  
12      public MyTreeTable() {
13          super();
14      }
15  
16      // in case of escape of "this"
17      public void initialize(MyAbstractTreeTableModel treeTableModel) {
18  
19          // JTree erstellen.
20          MyTreeTableCellRenderer tree = new MyTreeTableCellRenderer(this, treeTableModel);
21          tree.initialize();
22  
23          // Modell setzen.
24          super.setModel(new MyTreeTableModelAdapter(treeTableModel, tree));
25  
26          // Gleichzeitiges Selektieren fuer Tree und Table.
27          MyTreeTableSelectionModel selectionModel = new MyTreeTableSelectionModel();
28          selectionModel.initialize();
29          tree.setSelectionModel(selectionModel); //For the tree
30          setSelectionModel(selectionModel.getListSelectionModel()); //For the table
31  
32  
33          // Renderer fuer den Tree.
34          setDefaultRenderer(MyTreeTableModel.class, tree);
35          // Editor fuer die TreeTable
36          setDefaultEditor(MyTreeTableModel.class, new MyTreeTableCellEditor(tree, this));
37  
38          // Kein Grid anzeigen.
39          setShowGrid(false);
40  
41          // Keine Abstaende.
42          setIntercellSpacing(new Dimension(0, 0));
43      }
44  }