JPanel - Verwaltung/ Anordnung

isEgal

Mitglied
Hallo zusammen,
vielleicht hat jemand eine Idee, wie ich im Folgenden Fall vorgehen könnte:
(Der Code ist zu lang, als dass ich jemanden zumuten möchte, sich dadurch zu lesen. Es geht aber eigentlich nur ums Verständnis)

ich habe 3 Klassen: HauptPanel, MenuPanel, BerechnungsPanel. Auf dem HauptPanel werden die anderen beiden erzeugt und per Borderlayout "geaddet" (menu links, Berechnung center). Während der Laufzeit klicke ich zweimal in das Berechnungspanel, um eine (Abstands-)Wert zu erhalten (klappt auch alles).
Jetzt zur Frage: Wie bekomme ich den errechneten Wert nun in Echtzeit in das MenuPanel, dort soll er auf ein JLabel(?) geplottet werden. Würdet Ihr am Aufbau etwas ändern oder mit Methoden, etc.
Stehe echt auf dem Schlauch und bin für jede Hilfe dankbar.
 
Es sind einzelne Klassen, die von JPanel erben (extends JPanel)
Wenn du JPanel nicht um Funktionalität erweiterst, sondern in deinen Unterklassen nur Methoden von JPanel aufrufst, solltest du das vermeiden.
Schreibe dir eine Hauptklasse, die weder JFrame noch JPanel erweitert. In dieser Hauptklasse instanziierst du deine benötigten Komponenten, erstellst dann ein paar JPanel Instanzen, denen du per add die benötiten Komponenten hinzufügst, und schliesslich erstellst du eine JFrame Instanz der du die JPanel hinzufügst.
Während der Laufzeit klicke ich zweimal in das Berechnungspanel, um eine (Abstands-)Wert zu erhalten (klappt auch alles)
Mit "Berechungspanel" meinst du doch sicherlich eine Komponente? Oder klickst du wirklich nur auf das JPanel?
Lass mich raten: Berechnungspanel implementiert ActionListener, registriert sich bei einem JButton als ActionListener, und in der actionPerformed wird mit System.out.println eine meldung ausgegeben.
Um diese Ausgabe auf das JLabel umzuleiten, könntest du dir in der Hauptklasse einen anonymen ActionListener erzeugen. Da Hauptpanel nach dem oben beschriebenen "Design" alle Komponenten kennt, kennt sie der anonyme ActionListener auch und kann dementsprechend in seiner actionPerformed den Text des JLabels setzen.
 

Neue Themen


Zurück
Oben