Событие клика в выпадающем меню Swing Java

252
07 апреля 2017, 21:50

Создаю JTree. Добавляю туда элементы по клику кнопки - тобишь динамически.

Отлавливаю нажатие мыши в JTree:

private void structureMouseClicked(MouseEvent e) {
        // FILE служит для запоминания активного элемента.
        int selRow = structure.getRowForLocation(e.getX(), e.getY());
        TreePath selPath = structure.getPathForLocation(e.getX(), e.getY());
        if(FILE != selRow) {
            FILE = selRow;
            if(selRow != -1 && selRow >= 0) {
                if(e.getClickCount() == 1) {
                    System.out.println("open file");
                    workrtable.setVisible(true);
                }
            }
        } else {
            //Если мы нажали на уже выбранный элемент
            if (SwingUtilities.isRightMouseButton(e)) {
                // Если мы нажали на праву кнопку мыши
                TreePath path = structure.getPathForLocation(e.getX(), e.getY());
                Rectangle pathBounds = structure.getUI().getPathBounds(structure, path);
                if (pathBounds != null && pathBounds.contains(e.getX(), e.getY())) {
                    JPopupMenu menu = new JPopupMenu();
                    JMenuItem rename = new JMenuItem("Rename");
                    rename.addMouseListener(new MouseAdapter() {
                        @Override
                        public void mouseClicked(MouseEvent e) {
                            Rename(e);
                        }
                    });
                    JMenuItem remove = new JMenuItem("Remove");
                    menu.add(rename);
                    menu.add(remove);
                    menu.show(structure, pathBounds.x, pathBounds.y + pathBounds.height);
                }
            } else {
                workrtable.setVisible(false);
                structure.clearSelection();
                FILE = -1;
            }
        }
    }

Но событие не срабатывает. что делаю не так?

READ ALSO
Реализация Push Notifications в приложении

Реализация Push Notifications в приложении

Добрый деньХотел услышать совет по одному вопросу затронувшему меня

286
Как делать ассоциативный массив большой вложенности в Java?

Как делать ассоциативный массив большой вложенности в Java?

Есть у меня массив, примерно такой структуры:

342
Совместимость разных версий java

Совместимость разных версий java

Приложения, скомпилированные на более старой версии jdk, будут ли гарантированно работать на машине с более новой версией jdk, или нет? И наоборот,...

217