tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
161
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    d4rkY89 d4rkY89 ist offline Mitglied Silber
    Registriert seit
    May 2008
    Beiträge
    72
    Ich plane für einen Server zu programmieren, der so aufgebaut sein soll:
    Es soll eine Kernkomponente geben, in der alles ohne Ausgaben abgearbeitet wird.
    Zur Darstellung möchte ich dann ein JFrame aufbauen, bei der dann beispielsweise die Clients angezeigt werden, die momentan mit dem Server verbunden sind. Nun soll ein Interface, welches das JFrame implementiert hat, dazu dienen der Kernkomponente die Liste der Clients zu übergeben.

    Beispiel:

    Code java:
    1
    2
    3
    
    public interface MyInterface {
        public void refreshList( String[] clientList );
    }

    Code java:
    1
    2
    3
    4
    5
    6
    7
    
    public class GUI implements MyInterface {
        //...
        public void refreshList( String[] clientList ) {
            //code zum Verarbeiten der Liste
        }
        //...
    }

    Nun zu meiner Frage:

    Ist es nun möglich, dass die Kernkomponente des Programms die Methode "refreshList( String[] clientList )" aufrufen kann, ohne zu wissen, welche (Instanzen von) Klassen diese Methode implementiert haben?
    Ich möchte also kurz gesagt in der Kernkomponente die Methode "refreshList( String[] clientList )" in jeder Klasse aufrufen, die das MyInterface implementiert hat ( möglichst ohne voher die Objekte der Klassen zu sammeln; wie macht es Java beispielsweise beim MouseListener? Werden alle Klassen, die das Interface implementiert haben irgendwo angemeldet und in einer Liste eingetragen, sodass ein MouseEvent einfach an alle Klassen in dieser Liste z.b. mit der Methode "mousePressed" übergeben wird?)
    Ich hoffe, dass mein Problem deutlich geworden ist. Hab jedenfalls im Forum noch nichts in der Art gefunden. Hab eventuell falsch gesucht. Ist dieses Problem eventuell anderst zu lösen? Also nicht mit einem Interface.
    Geändert von d4rkY89 (09.10.08 um 05:04 Uhr)
     

  2. #2
    Andibert Andibert ist offline Mitglied Silber
    Registriert seit
    Sep 2006
    Ort
    Hildesheim
    Beiträge
    90
    Listener müssen immer an dem Objekt angemeldet werden das sie abhören.
    Die Kernkomponente die abgehört werden soll braucht also eine Methode mit etwa dieser Signatur
    Code java:
    1
    
     public void addListener(MyInterface listener)
    Die Kernkomponente muss sich dann die übergebenen Objekte merken (Zum Beispiel in einer Liste) und kann sie dann im Falle eines Falles über deren refreshList Methode aktuallisieren. So funktionierts auch mit den MouseEvents
     
    There are 10 kind of people, those who understand binary and those who don't.

  3. #3
    d4rkY89 d4rkY89 ist offline Mitglied Silber
    Registriert seit
    May 2008
    Beiträge
    72
    Klingt logisch. Vielen Dankt . Also war das mit dem Anmelden einer Komponente / eines Objekts keine falsche Überlegung von mir.
     

Ähnliche Themen

  1. Hilfe bei Interface Grundlagen benötigt...
    Von Weonde im Forum Java Grundlagen
    Antworten: 3
    Letzter Beitrag: 14.01.09, 06:41
  2. Hilfe bei Java Native Interface
    Von mister_ex im Forum Java
    Antworten: 2
    Letzter Beitrag: 15.06.04, 09:33
  3. Tutorial Hilfe | Pixel Interface
    Von Dennis-S. im Forum Photoshop
    Antworten: 2
    Letzter Beitrag: 13.04.04, 23:44
  4. Hilfe bei S-Kurve im Interface
    Von BliZzY im Forum Photoshop
    Antworten: 4
    Letzter Beitrag: 29.04.03, 15:40
  5. Erstes Interface, brauche Kritik
    Von cardex im Forum Photoshop
    Antworten: 4
    Letzter Beitrag: 23.11.01, 08:21