Frage

this.addTreeSelectionListener(new TreeSelectionListener() {

        public void valueChanged(TreeSelectionEvent e) {

            // How do I access the parent tree from here?           
        }           
    });
War es hilfreich?

Lösung

TreeSelectionListener ist eine Schnittstelle, so dass die einzige übergeordnete Klasse Object werden würde, die Sie sollten mit super anrufen können.

Wenn Sie eine Methode der umgebenden Klasse gemeint aufrufen, können Sie es nennen direkt als innerhalb einer Methode.

Andere Tipps

Sie können OuterClass.this verwenden:

public class Test {

    String name; // Would normally be private of course!

    public static void main(String[] args) throws Exception {
        Test t = new Test();
        t.name = "Jon";
        t.foo();
    }

    public void foo() {
        Runnable r = new Runnable() {
            public void run() {
                Test t = Test.this;
                System.out.println(t.name);
            }
        };
        r.run();
    }
}

Wenn Sie jedoch nur ein Mitglied zugreifen müssen in der umschließenden Instanz, anstatt einen Verweis auf die Instanz immer selbst, man kann es nur direkt zugreifen:

Runnable r = new Runnable() {
    public void run() {
        System.out.println(name); // Access Test.this.name
    }
};
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top