Auf list in einer anderen Klasse zugreifen

TomSto

Mitglied
Neuer Versuch:

Morgen! ;)

Ist es möglich, von einer anderen Klasse aus auf ein JB list zuzugreifen?

inetwa so: Oberflaeche.lib_Suchergebniss.add("text");

Oberflaeche ist hier meine andere Klasse, lib_suchergebnis die listbox.
Kenn das so aus VB.
Im JBuilder macht es aber nicht so den anschein, das dies funktionieren würde.

gruss thomas
 
Original geschrieben von TomSto
Neuer Versuch:

Morgen! ;)

Ist es möglich, von einer anderen Klasse aus auf ein JB list zuzugreifen?

inetwa so: Oberflaeche.lib_Suchergebniss.add("text");

Oberflaeche ist hier meine andere Klasse, lib_suchergebnis die listbox.
Kenn das so aus VB.
Im JBuilder macht es aber nicht so den anschein, das dies funktionieren würde.

gruss thomas

Natürlich geht das. Allerdings sind Konstrukte wie

Oberflaeche.lib_Suchergebniss.add("text");

verpönt, weil lib_Suchergebnisse als public deklariert werden müsste und ein direkter Zugriff auf ein Atrribut einer anderen Klasse der OOP widerspircht.

Schau Dir auch mal die Java Code Conventions an.
 
Hi Snape, danke für Deine Antwort.
Aus der Java Naming Convention bin ich noch nihct richtig schlau geworden.
Habe den Aufruf mal ausprobiert, funktioniert aber nicht.
Listbox steht auf Public.
Meldung lautet wie folgt: auf die Listbox kann aus statischem kontext heraus nicht zugegriffen werden....
naja, wenn das verpönt ist, dann will ich es auch mal lieber ned machen ... :-)

Nur die Frage ist dann, wie ich meine Methode schreiben soll...

Also:

ICh möchte gerne der Listbox, welche sich auf meiner Oberfläche (in einer anderen Klasse befindet) Werte hinzufügen.
Die Werte lese ich aus einem LDAP Verzeichnis aus.
Im Moment sieht mein Teil der Werteausgabe wie folgt aus:

Code:
while (enum.hasMore())
        {
          SearchResult result= (SearchResult)enum.next();
          Attributes attrs = result.getAttributes();
          
          sn = attrs.toString();
          
          System.out.println(sn.substring((sn.indexOf("sn=sn")+7),(sn.length()-1)));
            
          
          }//while

Diese Methode befindet sich in einer anderen Klasse. (Alleine schon der Übersicht halber :-))

Nun möchte ich aber gerne, dass die Werte der Listbox hinzugefügt werden, und nicht der Konsole.
Ich würde die Methode ja gerne als return programmieren, nur weis ich nicht wie das funktionieren soll, wenn ich eigentlich mehrere Werte zurückgeben soll...
sprich listbox.add(methode(Suchstring))...
Würde das mit einem array als Rückgabe eventuell funktionieren?
Wenn ja, was muss ich hierbei beachten?

gruss
 
Original geschrieben von TomSto
Hi Snape, danke für Deine Antwort.
Aus der Java Naming Convention bin ich noch nihct richtig schlau geworden.
Habe den Aufruf mal ausprobiert, funktioniert aber nicht.
Listbox steht auf Public.
Meldung lautet wie folgt: auf die Listbox kann aus statischem kontext heraus nicht zugegriffen werden....
naja, wenn das verpönt ist, dann will ich es auch mal lieber ned machen ... :-)

Nur die Frage ist dann, wie ich meine Methode schreiben soll...
gruss

1. statischer Kontext: Du versuchst das Hinzufügen aus einer statischen Methode heraus. Das ist normalerweise unüblich und selten nötig, statische Methoden zu benutzen. Sorge dafür, dass die Methode, aus der der Aufruf erfolgen soll, nicht statisch ist.
2. Wie Du das anders lösen kannst, ohne direkt auf die Attribute zuzugreifen? Mit getter- und setter-Methoden natürlich und das Attribut als private deklarieren.
 
Zurück