externe klassen auf gui objekte zugreifen lassen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
halloa,

ich hab mal eine grundlegende frage:
wie ist es am schönsten, dass externe klassen auf gui objekte eines zB JFrames zugreifen dürfen.
dh: ich hab eine klasse, die für die gesamte darstellung (JFrame initialisieren, gui elemente platzieren) verantwortlich ist.
dazu gibts dann div. klassen, die zB für das handeln von action events verantwortlich sind. wie greifen diese nun am "schönsten" auf die gui klasse zu?

ich hab mir folgendes überlegt:
1) ich übergebe den "externen" klassen das gui objekt: die gui klasse bietet public methoden zum setten/getten benötigter elemente an -> nachteil: müsste man ev. für JEDES element machen
2) ....

najo, mehr fällt mir eigentlich mom. gar nicht ein.
wie löst ihr sowas bzw. würdet ihr sowas lösen?

thx in advance!
 

dotlens

Top Contributor
meiner Meinung nach kommen die Listener auch in die GUI. Die Meinung ist heir jedoch geteilt. wenn du die Listener in die GUI plazierst hat das den Vorteil, dass du die Componenten nicht übergeben musst, und dann die Methoden in der Controller klasse ausführen kannst.
wenn du die Listener auch in die Controller ebene plazierst musst du wohl oder übel die Componenten übergeben oder gette und setter schreiben. letzteres ist schöner, jedoch auch aufwändiger.

Mein Tipp: Listener in die GUI ;)
 
G

Guest

Gast
hallo!

danke für deine antwort.
konkret ist es momentan so:

eine gui klasse, welche - wie erwähnt - alles zeichnet...
gui klasse "bettet" auch eine Menu klasse ein. die menu klasse erstellt eine JMenuBar und implementiert den ActionListener.
nur wie komm ich jetzt von MenuKlasse - wenn ich dort was aufrufe - auf die gui klasse?
die menu klasse bekommt schon ein "parent" objekt von der gui klasse mit...

soll ich es also mit getter/setter machen? das hätte ich eh schon -> dachte halt, dass es da eine generischere lösun gäbe...

thx
 

babuschka

Top Contributor
Hi!

ich habe etwas ähnliches vor kurzem mit dem Mediator Design Pattern gelöst.
D.h. ich habe jede GUI Componente bei meiner Mediator Klasse registriert. Die Mediator Klasse hatte danach jede GUI Componente als Attribut und kann somit auf alle anderen GUI Componenten zugreifen/verändern.
Da ich über 20 Checkboxen und ComboBox hatte war das zwar sehr viel code zu schreiben... aber sehr angenehm zu handhaben wie ich finde.
 
G

Guest

Gast
hi!

das hat mich auf eine (glaub ich) gute idee gebracht. danke!

hab zwar nicht haargenau dieses pattern verwendet, aber was ähnliches. -> wollte nicht gar soviel aufwand :)

hab mir eine klasse "GuiReferencer" geschrieben, welche ein singleton ist und folgende methoden anbietet:
Code:
public void add(String objName, Object object);
public Object get(String objName);

in der "gui" klasse (oder wo auch immer) kann ich zB mittels
Code:
        GuiReferencer guiRefStorer = GuiReferencer.getInstance();
        guiRefStorer.add("frame", this);
eine referenz speichern. Die GuiReferencer klasse speichert ein "GuiReference" Objekt (mit getObject und getObjectName methoden) in einer arrayList.

dh: ich kann dann überall, wo ich gerade will mittels
Code:
JFrame frame = (JFrame)guiRef.get("frame");

auslesen. natürlich muss ich wissen, wie ich es casten muss, aber das ist ja das geringste problem :) wollte dafür nicht reflection verwenden...

was haltet ihr davon? is das akzeptabel?

thx
 
B

bygones

Gast
mhm - singletons sollten so wenig wie möglich eingesetzt werden da sie im Grunde nichts anderes als globale Variablen sind....

Ich finde persönlich die Lösung nicht so toll - es stellt sich auch die frage, ob du mit mehreren Guis arbeitest, denn wenn es nur eine ist, warum dann eine extra Klasse die die GUI aufnimmt und nicht die GUI als Singleton.

Ich fände es z.b. besser wenn du z.b. der MenuKlasse den Frame als ActionListener als Parameter mitgibst... somit muss direkt der Frame auf menu ereignisse reagieren
 
G

Guest

Gast
deathbyaclown hat gesagt.:
mhm - singletons sollten so wenig wie möglich eingesetzt werden da sie im Grunde nichts anderes als globale Variablen sind....
???? najo, oba net wirklich

Ich finde persönlich die Lösung nicht so toll - es stellt sich auch die frage, ob du mit mehreren Guis arbeitest, denn wenn es nur eine ist, warum dann eine extra Klasse die die GUI aufnimmt und nicht die GUI als Singleton.
ich find die idee - wie schon erwähnt - eben nicht so gut, weil die gui irgendwie was "abgeschlossenes" sein sollte - IMHO

Ich fände es z.b. besser wenn du z.b. der MenuKlasse den Frame als ActionListener als Parameter mitgibst... somit muss direkt der Frame auf menu ereignisse reagieren
jo, aber eigentlich machen lauter klassen nach der menüklasse die arbeit. dh: ich müsste jedem den parameter mitgeben -> das hat mich nicht so fasziniert. -> ausserdem müsste ich public getter/setter methoden machen

mir scheints so relativ einfach und übersichtlich...

thx trotzdem für deine einwände!
 

dotlens

Top Contributor
@gast, ich persönlich würde 2 mals lesen was deathbyaclown hier schreibt.
denn erfahrungsgemäss kennt er sich in diesen Dingen gut aus.

ausserdemm stimmt es dass singleton das selbe ist wie wenn alles globale variablen sind, denn die ganze Klasse ist global, also sind es auch alle Variablen die darin vorkommen.
 
G

Guest

Gast
dotlens hat gesagt.:
@gast, ich persönlich würde 2 mals lesen was deathbyaclown hier schreibt.
denn erfahrungsgemäss kennt er sich in diesen Dingen gut aus.
ok, sorry.

@dethbyaclown: sorry - für meinen zweifel
 
G

Guest

Gast
jojo, lieber niemanden provozieren :)

bin ja froh, wenns so freundliche leute gibt, die helfen....
 
G

Guest

Gast
so: ich habs jetzt auf deathbyclowns vorschlag umgebaut! -> is ja net so, dass ich mir nichts sagen lass :)

danke für eure hilfe1
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Swing Externe Klassen aufrufen und in einem bereits vorhandenen Container einfügen AWT, Swing, JavaFX & SWT 0
Augenblau JavaFX Externe Schriftart über CSS ansprechen und zuweisen AWT, Swing, JavaFX & SWT 5
X buttons aus externe klasse lesen? AWT, Swing, JavaFX & SWT 3
H Event Handling Externe Method schliesst Hauptapplikation AWT, Swing, JavaFX & SWT 6
A Swing Externe Schriftart mitkompilieren für andere PCs? AWT, Swing, JavaFX & SWT 3
C Swing Verlinken auf externe Prozesse bsp. Mailprogramm, Inet. Browser AWT, Swing, JavaFX & SWT 6
R LookAndFeel auf Gui Layout (externe Klasse) zugreifen AWT, Swing, JavaFX & SWT 6
T [SWT] Externe Programmfenster einbinden AWT, Swing, JavaFX & SWT 2
X Externe Anwendungen in JInternalframe starten. AWT, Swing, JavaFX & SWT 5
S Tastaturevents an eine externe Applikation weiter leiten AWT, Swing, JavaFX & SWT 6
W Externe Programme in JFrame starten AWT, Swing, JavaFX & SWT 4
G externe ActionListener Klasse AWT, Swing, JavaFX & SWT 3
XWing Swing Image anzeigen und probleme mit klassen AWT, Swing, JavaFX & SWT 3
L Kommunikation zwischen Klassen / Konstruktoren bei Swing AWT, Swing, JavaFX & SWT 9
P JavaFX Zugriff auf Fenster/Layout-Container in eigenen Klassen AWT, Swing, JavaFX & SWT 5
Ø Swing Button in anderer Klassen ausführen AWT, Swing, JavaFX & SWT 6
H Swing Frame an andere Klassen weitergeben AWT, Swing, JavaFX & SWT 4
R JavaFX Java FXML Vererbung in Klassen AWT, Swing, JavaFX & SWT 9
K JavaFX Allgemeine Fragen zu dem Aufbau eines Programms hinsichtlich der Klassen AWT, Swing, JavaFX & SWT 1
D Zwei getrennte Java Klassen verbinden. Wie ? AWT, Swing, JavaFX & SWT 2
W JavaFX Mehrere Klassen in ein TableView AWT, Swing, JavaFX & SWT 6
Soloeco Swing JTextField auslesen Klassen übergreifend AWT, Swing, JavaFX & SWT 16
K Wie kann ich eine Variable zwischen Tab Klassen weitergeben ? AWT, Swing, JavaFX & SWT 7
A Oberfläche mit zwei Klassen und actionlistener verbinden AWT, Swing, JavaFX & SWT 7
B Pong Projekt mit LWJGL Klassen exportieren AWT, Swing, JavaFX & SWT 14
M Swing Vorgehen beim Aufruf der Klassen/Methoden AWT, Swing, JavaFX & SWT 7
D JavaFX @FXML Annotation mit Klassen und Instanzen verbinden? AWT, Swing, JavaFX & SWT 5
S Grafik in einer Klassen einfügen/hinzufügen AWT, Swing, JavaFX & SWT 1
M Swing MVC mit mehreren Klassen AWT, Swing, JavaFX & SWT 2
C Thread in Klassen starten AWT, Swing, JavaFX & SWT 4
C Swing Aus verschiedenen Klassen zeichnen. AWT, Swing, JavaFX & SWT 2
M Innere Klassen, ZugriffsProbleme AWT, Swing, JavaFX & SWT 4
V kann ich in einer Klasse stage und scene deklarieren, aber in anderen Klassen Inhalte hinzufügen ? AWT, Swing, JavaFX & SWT 5
A Swing Zwei Klassen mit Textfeld Eingaben vergleichen und Ausgabe erzeugen AWT, Swing, JavaFX & SWT 10
D SWT SWT Elemente aus anderen Klassen aufrufen - Invalid thread access AWT, Swing, JavaFX & SWT 6
M ActionListener für mehrere Klassen AWT, Swing, JavaFX & SWT 4
Z Swing Von vielen Klassen auf ein GUI-Element zugreifen AWT, Swing, JavaFX & SWT 10
F Swing JAVA GUI Übergabe von Werten zwischen mehreren Fenstern/Klassen AWT, Swing, JavaFX & SWT 10
C In Hauptfenster Programm-Klassen implementieren AWT, Swing, JavaFX & SWT 9
P Actionlistener - 3 klassen - kompliziert - auf methoden zugreifen AWT, Swing, JavaFX & SWT 3
B 2 Klassen Kommunikation AWT, Swing, JavaFX & SWT 4
P versch. JPanel Klassen über Menü öffnen AWT, Swing, JavaFX & SWT 12
E Swing auf klassen zugreifen AWT, Swing, JavaFX & SWT 2
A Daten umherschieben zwischen zwei Klassen AWT, Swing, JavaFX & SWT 40
H Verschiedene JPanels aus eigenen Klassen in JFrame einfügen, nur ein Panel sichtbar AWT, Swing, JavaFX & SWT 4
Zettelkasten repaint() von anderen Klassen aufrufen AWT, Swing, JavaFX & SWT 4
3 JFrame in Klassen aufrufen AWT, Swing, JavaFX & SWT 2
P Swing Beziehungen zwischen 3 Klassen AWT, Swing, JavaFX & SWT 4
Luk10 repaint() auch in anderen Klassen! AWT, Swing, JavaFX & SWT 6
L innere klassen AWT, Swing, JavaFX & SWT 3
lumo SWT Table und Klassen AWT, Swing, JavaFX & SWT 14
S import von Klassen (zwei Panels eine Form) AWT, Swing, JavaFX & SWT 39
B abstrakte klassen / anonyme klassen AWT, Swing, JavaFX & SWT 4
B Swing Passendes Layout finden: Welche Klassen muss ich wie anwenden? AWT, Swing, JavaFX & SWT 8
H Swing Prog in mehrere Klassen zerlegen AWT, Swing, JavaFX & SWT 13
G Variblenwert zwischen zwei Klassen übergeben AWT, Swing, JavaFX & SWT 3
G Prinzipelles zum Umgang von Klassen untereinander AWT, Swing, JavaFX & SWT 4
M JTree und TreeModel mit 2 Klassen AWT, Swing, JavaFX & SWT 3
T Kommunikation zwischen Zwei GUI-Klassen AWT, Swing, JavaFX & SWT 2
J Unterschied zwischen nicht-statischen und statischen Klassen AWT, Swing, JavaFX & SWT 5
H jar-archive mit mehreren Klassen erstellen AWT, Swing, JavaFX & SWT 3
G Grafik auf mehrere Methoden/Klassen zerlegen AWT, Swing, JavaFX & SWT 2
D Event Klassen AWT, Swing, JavaFX & SWT 2
A JTextArea-Problem in Inneren Klassen und Packages AWT, Swing, JavaFX & SWT 3
G Klassen übergreifen AWT, Swing, JavaFX & SWT 4
G ActionListener und Methoden-Aufruf aus anderen Klassen AWT, Swing, JavaFX & SWT 3
G Prob mit 2 Klassen und set Methode AWT, Swing, JavaFX & SWT 6
Juelin Objekte refresh AWT, Swing, JavaFX & SWT 3
N Graphics Objekte scalen mit Veränderung des Bildschirms AWT, Swing, JavaFX & SWT 19
berserkerdq2 Skalieren sich javafx objekte automatisch auf die Bildschirmgröße AWT, Swing, JavaFX & SWT 6
Redeason Objekte in meiner GUI verschieben AWT, Swing, JavaFX & SWT 1
_user_q Objekte vom MainController in anderen Controller verwenden und andersherum (NullPointerException) AWT, Swing, JavaFX & SWT 14
_user_q JavaFX Wie kann ich alle Objekte außer eins deaktivieren (das Gleiche mit BoxBlur)? AWT, Swing, JavaFX & SWT 11
ExceptionOfExpectation MouseListener-Objekte zu den Graphics-Objekten einfügen AWT, Swing, JavaFX & SWT 3
donnico2 Objekte in der GUI ausgeben mit Hilfe einer DAO AWT, Swing, JavaFX & SWT 1
B JavaFX Von welcher Klasse und zu welchem Zeitpunkt werden Event-Objekte erstellt? AWT, Swing, JavaFX & SWT 3
J Objekte von 2 GUIs zusammenfassen AWT, Swing, JavaFX & SWT 2
T Swing Objekte in Liste AWT, Swing, JavaFX & SWT 2
stroggi Swing Mehrere transparentes Objekte (Grafiken) über einem Bild (JLabel) darstellen AWT, Swing, JavaFX & SWT 4
C JList: Bestimmte Objekte ausschließen AWT, Swing, JavaFX & SWT 1
MaxG. Swing Dynamisch grafische Objekte erzeugen AWT, Swing, JavaFX & SWT 12
Y Objekte grafisch darstellen ohne GMF - Composite auf Canvas? AWT, Swing, JavaFX & SWT 2
D Swing Swing Objekte sehen im Entwurf anders aus als beim Ausführen AWT, Swing, JavaFX & SWT 3
L Dynamischer Aufbau einer Tabelle über Objekte AWT, Swing, JavaFX & SWT 2
H Swing + Paint: Mehrere Objekte zeichnen lassen AWT, Swing, JavaFX & SWT 3
JG12111989 mehrere Polyline-Objekte zeichnen AWT, Swing, JavaFX & SWT 3
D Objekte einer Oberfläche in eine Datei/Ordner speichern AWT, Swing, JavaFX & SWT 9
T Rectangle Transparent und darunter liegende Objekte Bedienbar AWT, Swing, JavaFX & SWT 0
J Swing/AWT | Dynamisch erzeugte Objekte ansprechen AWT, Swing, JavaFX & SWT 1
Z Möglichkeit mit Listerners die Farbe meiner Objekte zu ändern AWT, Swing, JavaFX & SWT 15
GenerationLost Bilder an bestimmten Platz einfügen/Objekte visualisieren AWT, Swing, JavaFX & SWT 1
I Objekte aus contentPane löschen funktioniert nicht AWT, Swing, JavaFX & SWT 3
C Swing Java Objekte AWT, Swing, JavaFX & SWT 4
J JavaFX Eigene ListCell Problem(Objekte werden doppelt angezeigt) AWT, Swing, JavaFX & SWT 1
N Swing Alle Objekte anzeigen auch bei JPanel-Überlappung AWT, Swing, JavaFX & SWT 6
A Swing Focus der Radio Buttons + text bleibt gleich und gleichzeitige ausgabe zweier Objekte in 1. Fenster AWT, Swing, JavaFX & SWT 3
A Drag and Drop eigener Objekte AWT, Swing, JavaFX & SWT 7
M SWT Durchlagen der SWT Objekte mit Tabulator AWT, Swing, JavaFX & SWT 5
Ollek JList - neuer Eintrag in ArrayList dadurch keine Anzeige der Objekte AWT, Swing, JavaFX & SWT 18
S Swing Kopie eines JPanels inkl. aller objekte darin erstellen AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben