JTree: Проверьте уровень выбора - PullRequest
1 голос
/ 29 декабря 2011

Я использую MouseAdapter для проверки двойного щелчка на узлах JTree.Я хочу иметь несколько разных действий в зависимости от уровня выбранного узла.Как я могу проверить уровень узла?Вот код для слушателя:

private MouseAdapter getMouseAdapter(JTree jtree) {
        final JTree tree = jtree;
        return new MouseAdapter() {

            @Override
            public void mousePressed(MouseEvent e) {
                TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
                if (selPath != null) {
                    if (e.getClickCount() == 2) {
                        String selectedNode = selPath.getLastPathComponent().toString();

              // >>>>>  check on which level of the tree this node is        
                    }
                }
            }};
    }

Ответы [ 2 ]

4 голосов
/ 29 декабря 2011

Вы можете проверить длину пути от selPath до корня дерева, сначала вызвав getPath () метод selPath и вычислив его длину.

Object[] array = selPath.getPath();
int depth = array.length;
0 голосов
/ 28 апреля 2013
TreePath path = tree.getSelectionPath();
int level = path.getPathCount();

См. Справочную страницу TreePath .

...