Re: JTree + JPopupMenu
От: danila.master Россия  
Дата: 09.05.07 10:23
Оценка:
Здравствуйте, Zelgadis, Вы писали:

Z>Здравствуйте возникла следующая проблема:

Z>необходимо создать JPopupMenu для JTree. Здесь и здесь
Автор: DemAS
Дата: 23.11.04
были предложены методы по создании менюшки, но у них есть серьёзный недостаток: при щелчке правой кнопкой мышки (что обычно вызывает появление менюшки) узел находящийся под курсором не выделяется. Поэтому для работы с определённым узлом необходимо сначала выделить его а затем вызывать меню, что крайне неудобно. Во многих приложениях же узлы выделяются перед выховом меню.

Z>Буду крайне благодарен если кто нибудь подскажет как это сделать.

Можно зарегистрировать MouseListener, в котором менять выделение, а потом показывать меню. Что-то типа:

        MouseListener ml = new MouseAdapter() {
            public void showPopup(MouseEvent e) {
                if (e.isPopupTrigger()) {
                    menu.show((Component) e.getSource(), e.getX(), e.getY());
                }
            }
            @Override
            public void mousePressed(MouseEvent e) {
                int row = tree.getRowForLocation(e.getX(), e.getY());
                if (row != -1) {
                    tree.setSelectionRow(row);
                }
                showPopup(e);
            }
            @Override
            public void mouseReleased(MouseEvent e) {
                showPopup(e);
            }
        };
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.