tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
10
ZUGRIFFE
213
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    hesk hesk ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Beiträge
    192
    Hallo!

    Die erste Klasse ist zur Darstellung der Seite gedacht.
    In dieser wird eine jTable erzeugt.

    Code java:
    1
    2
    3
    4
    5
    
    private JTableFilterHeader table;
    .
    .
    .
    table = new JTableFilterHeader( data, columnData );

    Die JTableFilterHeader-Klasse implementiert ItemListener sodass ich mitbekomme wenn eine ComboBox(welche sich in der JTable befindet) sich ändert. Je nachdem was mit der Checkbox passiert, wird die Table verändert.

    Jetzt möchte ich gerne in der ersten Klasse auch mitbekommen, dass die ComboBox sich geändert hat.

    Wie macht man das am besten?
    Geändert von hesk (07.09.11 um 10:43 Uhr)
     

  2. #2
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    Jetzt möchte ich gerne in der ersten Klasse auch mitbekommen, dass die CheckBox sich geändert hat.
    Was genau soll passieren, wenn sie es "mitbekommen" hat? BTW du redest erst von ComboBox und dann von CheckBox, hast du beides?
     
    Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
    ...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.

  3. #3
    hesk hesk ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Beiträge
    192
    Ich meinte ComboBox. Habs ausgebessert.

    In der Table kann man anhand der ComboBoxes filtern.
    Unterhalb der Table wird dann angezeigt, wieviele Einträge gerade vorhanden sind.
    Also muss die 1. Klasse wissen wann sich die ComboBoxes der Table geändert haben.
     

  4. #4
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Hi,
    wieso versuchst du es nicht einfach mit einem ActionListener bei der Combobox?

    Gruß

    Fabio
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  5. #5
    hesk hesk ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Beiträge
    192
    Die JTable ist eine eigene Klasse, in einem eigenen File.
    Dort befindet sich die ComboBox.

    Wenn ich jetzt der ComboBox den Listener der ersten Klasse(frame) adde, dann kann ich die JTable-Klasse niergendwo anders verwenden.

    Ich möchte sie aber auch in anderen Frames verwenden.

    Halbwegs verständlich?
     

  6. #6
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    Die einfachste Möglichkeit ist meiner Meinung nach den Eventcode in der UI-Klasse hinzuzufügen, also:
    Code java:
    1
    2
    
    class Darstellung implements ActionListener //oder ItemListener****
    combobox.addActionListener(this);
    Oder hat es eventuell einen speziellen Grund, dass du dafür eine eigene Klasse erstellst?
     
    Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
    ...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.

  7. #7
    hesk hesk ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Beiträge
    192
    Ja, die gesamte JTable ist eine eigene Klasse. Die JTable enthält ComboBoxes im Header anhand jener gefiltert werden kann.

    Das Frame(1. Klasse) erzeugt nun so eine JTable und stellt sie dar. Jetzt müßte ich aber noch im Frame mitbekommen, wann sich die ComboBox in der jtable ändert.

    Sowas in der Art "benachrichtige mich wenn der ItemListener der JTable anspring"
     

  8. #8
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hi,

    du willst also eine Art Observer Pattern implementieren?

    Gruß
    BK
     
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

  9. #9
    hesk hesk ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Beiträge
    192
    Habe mir das Prinzip von Observer und Observable durchgelesen. Klingt nach dem was ich suche.

    Leider ist meine JTable so definiert:

    Code java:
    1
    
    public class JTableFilterHeader extends JTable implements ItemListener

    Wie kann ich diese nun Observable machen?
     

  10. #10
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hi,

    ganz fix eine Idee (evtl gibts da bessere Lösungen), so als Denkanstoß:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    public class Test extends JTable implements ItemListener {
        private MyObservable observable_obj = new MyObservable();
     
        public void itemStateChanged(ItemEvent e) {
            observable_obj.setChanged();
            observable_obj.notifyObservers(e);
        }
        
        public void addObserver(Observer o) {
            observable_obj.addObserver(o);
        }
        
        public void deleteObserver(Observer o) {
            observable_obj.deleteObserver(o);
        }
    }
     
    class MyObservable extends Observable {
      public synchronized void setChanged() {
        super.setChanged();
      }
    }
    Vorlage / Quelle: java2s.com

    Gruß
    BK
    Geändert von Bratkartoffel (07.09.11 um 11:43 Uhr) Grund: Formatierung
     
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

  11. #11
    hesk hesk ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Beiträge
    192
    Vielen Dank!

    Hat so geklappt wie du es im Bsp gezeigt hast.
     

Ähnliche Themen

  1. logisches Problem mit 2 Tabellen
    Von mychastic im Forum Relationale Datenbanksysteme
    Antworten: 10
    Letzter Beitrag: 11.08.08, 13:04
  2. logisches Problem
    Von quidnovi im Forum PHP
    Antworten: 5
    Letzter Beitrag: 05.07.07, 11:45
  3. logisches Problem
    Von quidnovi im Forum PHP
    Antworten: 2
    Letzter Beitrag: 20.06.07, 07:19
  4. Logisches Problem mit Schleifen
    Von PsychoSam im Forum PHP
    Antworten: 3
    Letzter Beitrag: 16.04.04, 12:07
  5. Logisches Problem
    Von bspainkf36 im Forum PHP
    Antworten: 4
    Letzter Beitrag: 21.02.04, 13:27