проблема наследования в Java - PullRequest
0 голосов
/ 02 апреля 2011

У меня есть класс Frame, в который я поместил одно Jtree, теперь я разработал TreeSelectionListener для своего дерева.так как мое дерево находится в моем классе Frame, как я могу получить доступ к своему дереву?

Я хочу знать узел ведьмы, нажатый пользователемЯ создаю класс stataic из своего фреймового класса, но я думаю, что этот путь неправильный, пожалуйста, посоветуйте мне.

Ответы [ 2 ]

5 голосов
/ 02 апреля 2011

Просто создайте конструктор для JTreeSelectionListener, который принимает JTree:

public class Frame1 extends JFrame {
    private JTree jtree = new JTree();

    public Frame1() {
        jtree.addTreeSelectionListener(new JTreeSelectionListener(jtree));
    }
}

public class JTreeSelectionListener implements TreeSelectionListener {
    private JTree jtree;

    public JTreeSelectionListener(JTree jtree) {
        this.jtree = jtree;
    }

    public void valueChanged(TreeSelectionEvent e) {
    }
}
3 голосов
/ 02 апреля 2011

Другой подход - объединить функциональность слушателя с вашим классом фреймов:

public class Frame1 extends JFrame implements JTreeSelectionListener {
    private JTree jtree = new JTree();

    public Frame1() {
        jtree.addTreeSelectionListener(this);
    }

    public void valueChanged(TreeSelectionEvent e) {
        // can now access jtree directly ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...