MyTreeTable.java
package edu.jiangxin.apktoolbox.swing.treetable;
import java.awt.Dimension;
import java.io.Serial;
import javax.swing.JTable;
public class MyTreeTable extends JTable {
@Serial
private static final long serialVersionUID = 1L;
public MyTreeTable() {
super();
}
// in case of escape of "this"
public void initialize(MyAbstractTreeTableModel treeTableModel) {
// JTree erstellen.
MyTreeTableCellRenderer tree = new MyTreeTableCellRenderer(this, treeTableModel);
tree.initialize();
// Modell setzen.
super.setModel(new MyTreeTableModelAdapter(treeTableModel, tree));
// Gleichzeitiges Selektieren fuer Tree und Table.
MyTreeTableSelectionModel selectionModel = new MyTreeTableSelectionModel();
selectionModel.initialize();
tree.setSelectionModel(selectionModel); //For the tree
setSelectionModel(selectionModel.getListSelectionModel()); //For the table
// Renderer fuer den Tree.
setDefaultRenderer(MyTreeTableModel.class, tree);
// Editor fuer die TreeTable
setDefaultEditor(MyTreeTableModel.class, new MyTreeTableCellEditor(tree, this));
// Kein Grid anzeigen.
setShowGrid(false);
// Keine Abstaende.
setIntercellSpacing(new Dimension(0, 0));
}
}