View Javadoc
1   package edu.jiangxin.apktoolbox.swing.treetable;
2   
3   import java.awt.Component;
4   import java.awt.event.MouseEvent;
5   import java.io.Serial;
6   import java.util.EventObject;
7   
8   import javax.swing.AbstractCellEditor;
9   import javax.swing.JTable;
10  import javax.swing.JTree;
11  import javax.swing.table.TableCellEditor;
12  
13  public class MyTreeTableCellEditor extends AbstractCellEditor implements TableCellEditor {
14      @Serial
15      private static final long serialVersionUID = 1L;
16  
17      private JTree tree;
18      private JTable table;
19  
20      public MyTreeTableCellEditor(JTree tree, JTable table) {
21          this.tree = tree;
22          this.table = table;
23      }
24  
25      public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int r, int c) {
26          return tree;
27      }
28  
29      public boolean isCellEditable(EventObject e) {
30          if (e instanceof MouseEvent) {
31              int colunm1 = 0;
32              MouseEvent me = (MouseEvent) e;
33              int doubleClick = 2;
34              MouseEvent newME = new MouseEvent(tree, me.getID(), me.getWhen(), me.getModifiersEx(), me.getX() - table.getCellRect(0, colunm1, true).x, me.getY(), doubleClick, me.isPopupTrigger());
35              tree.dispatchEvent(newME);
36          }
37          return false;
38      }
39  
40      @Override
41      public Object getCellEditorValue() {
42          return null;
43      }
44  
45  }