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 }