Swing GUI und Anwenderprogramm trennen

kor

Mitglied
Hallo

Ich bin kein Programmier Profi darum sind meine Fragen für manche trivial. Ich konnte Sie aber nicht zu meiner zufridenheit lösen und suche daher unterstützung.

Ich habe mit dem ApplicationBuilder unter Eclipse eine GUI Oberfläche mit mehreren Pannels auf denen sich buttons, textfelder und eine listpane befindet erstellt.
Ich möchte diese GUI von meiner Anwendersoftware trennen. Dass kann ich mit listener machen. Aber ich finde dazu nur sehr einfache Beispiele. Ich möchte auf mehrere Buttons mit mausklick reagieren und auch auf Tastendrücke. Dazu brauche ich zwei verschiedene Listener. Muss ich diese dann in seperaten Klassen instanzieren? Wo/Wie gib ich an welcher zb. button behandelt wird?

Wenn ich mit dem ApplicationBuilder die Events gleich dazufüge werden Sie in der GUI Klasse angelegt. Da kann ich sehr leicht meinen Code einfügen. Dies entspricht aber KEINER Trennung der programmteile. Ist das normal oder benutze ich den Builder falsch?

Lg
 

Xeonkryptos

Bekanntes Mitglied
Mit einem einfachen Mausklick empfehle ich dir einen ActionListener. Mit dem kannst du auf ActionEvents reagieren, die beim einfachen Klicken auf dem Button getätigt werden.
Für eine Unterscheidung der Buttons, sofern du mehrere Buttons auf einen Listener registrierst, sind die Methoden getActionCommand() und setActionCommand()

Mit setActionCommand kannst du dem Button einen Namen geben: "Button1" oder so und mit getActionCommand fragst du diesen in der actionPerformed-Methode des Listeners ab.
 

kor

Mitglied
hi

erstmal danke für eure Antworten.

Ich habe jetzt eine "trennung" mit Adapter programmiert. Funktioniert soweit.
ABER so eine richtige Trennung ist es meiner Meinung nicht weil meinem MouseAdapter muss das objekt GUI bekannt sein und um zwischen den Buttons unterscheiden zu können muss ich auch diese in der Adapterklasse ansprechen. D.h. es wurde sozusagen die Erzeugung der Oberfläche in einer Klasse gemacht und die Logik und Eventprogrammierung in einer anderen, die aber alle variable der Oberfläche kennen muss. Ich finde dass ist trozdem sehr eng gekoppelt.
Gibt es eine bessere Trennung oder ist dass so in Ordnung?

Lg
 

Xeonkryptos

Bekanntes Mitglied
Damit man hier nicht gegen die OOP-Regeln verstößt und alles public machen muss verwendet man in Java die inneren Klassen. Mit ihnen kannst du eine Klasse in einer anderen erstellen, wodurch du Zugriff auf die Variablen der GUI-Klasse hast ohne diese public zu machen oder getter und setter zu schreiben, lagerst aber die Implementierung doch in eine andere Klasse um. :)

Such einfach mal nach: Innere Klassen

Edit: Ich habe da wohl etwas falsch verstanden. :) Es ist insofern in Ordnung, wenn du die Variablen nicht alle public gemacht hast, um Zugriff auf sie zu bekommen.
 
Zuletzt bearbeitet:

kor

Mitglied
hi

(ja das mit den inneren Klassen verstehe ich schon aber dann würde erst wieder alles in einer Datei stehen. )

So wie ich es jetzt mit den Adapterklassen habe muss ich schon alles public machen, aber das kann ich ändern wenn ich die variablen über (public) Methoden abfrage. Macht zwar für mich keinen unterschied, steht aber (glaub ich) nicht im widerspruch zum OOP konzept.

Wenn dass so richtig ist wie ich dass gemacht haben, werde ich es lassen. Für mich ist die Trennung zwischen gui und anwenderlogik trotzdem sehr "schwammig", habe aber sonnst keinen besseren Ansatz gefunden.

Lg
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
XWing Jave swing overly benutzten. AWT, Swing, JavaFX & SWT 3
J Anzeige ID und Markierung für Knoten in Eclipse & Swing AWT, Swing, JavaFX & SWT 4
Juelin javax.swing in javafx AWT, Swing, JavaFX & SWT 1
A Eclipse 2023 und Swing AWT, Swing, JavaFX & SWT 4
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
H Swing Componente zur Läufzeit ändern AWT, Swing, JavaFX & SWT 3
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
ExceptionOfExpectation Anpassung von JKomponentengrößen (Swing) AWT, Swing, JavaFX & SWT 3
thor_norsk AWT SWING Aufgabe AWT, Swing, JavaFX & SWT 7
U Zwei Fragen zu eienr Swing Aufgabe AWT, Swing, JavaFX & SWT 2
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
H Simple Animation mit Swing AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Einfachste Möglichkeit zum Abspielen eines Videos in Swing AWT, Swing, JavaFX & SWT 4
A Swing ProgressBar über 2 parallel laufende Threads AWT, Swing, JavaFX & SWT 2
M Swing GridLayout AWT, Swing, JavaFX & SWT 2
O return-Statement mit Swing AWT, Swing, JavaFX & SWT 6
O Ein Java-Programm mit Swing steuern AWT, Swing, JavaFX & SWT 1
Monokuma Swing zu JavaFX AWT, Swing, JavaFX & SWT 5
J Swing Slider AWT, Swing, JavaFX & SWT 11
G Thread starten Swing AWT, Swing, JavaFX & SWT 5
G Swing JPasswordField AWT, Swing, JavaFX & SWT 12
L Swing Button Farbe ändern/wechseln AWT, Swing, JavaFX & SWT 2
C Swing AWT GUI Anfänger Aufgabe AWT, Swing, JavaFX & SWT 7
W Inject bei einem Swing Frontend AWT, Swing, JavaFX & SWT 8
L Kommunikation zwischen Klassen / Konstruktoren bei Swing AWT, Swing, JavaFX & SWT 9
M Feldvalidierung swing AWT, Swing, JavaFX & SWT 4
E Swing Componenten werden nach Änderung des display modes verzerrt dargestellt AWT, Swing, JavaFX & SWT 8
D [Swing] Anordnung von Komponenten mit GridLayout Manager AWT, Swing, JavaFX & SWT 13
O Zukunft von Swing und JavaFX ? AWT, Swing, JavaFX & SWT 3
S Swing Fenster State Machine AWT, Swing, JavaFX & SWT 1
T Swing Swing an Bildschirm anpassen AWT, Swing, JavaFX & SWT 3
S Swing Panel wird nicht neu gezeichnet AWT, Swing, JavaFX & SWT 3
M Swing Java Swing/AWT Combobox Bug AWT, Swing, JavaFX & SWT 3
M Swing GUI mittels erben sowie variabler Dateninhalt AWT, Swing, JavaFX & SWT 1
W Swing Multitouch mit Swing AWT, Swing, JavaFX & SWT 6
S Swing-Applikation die ein Numpad nachbildet samt Keybindings..? AWT, Swing, JavaFX & SWT 5
S Swing Java Swing AWT, Swing, JavaFX & SWT 6
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
J Swing oder JavaFX AWT, Swing, JavaFX & SWT 21
D Swing Anwendung ohne JPanel erstellen AWT, Swing, JavaFX & SWT 1
D SQL Statements mit Java Swing benutzen AWT, Swing, JavaFX & SWT 4
Damtonix BufferStrategy flackert (Swing) AWT, Swing, JavaFX & SWT 9
D DatePicker für Java Swing AWT, Swing, JavaFX & SWT 2
B JavaFX oder swing AWT, Swing, JavaFX & SWT 3
T Java Swing - kleines Rechteck unter dem cursor AWT, Swing, JavaFX & SWT 5
L 2D-Grafik Swing paint|paintComponent AWT, Swing, JavaFX & SWT 2
L Swing Größe automatisch anpassen AWT, Swing, JavaFX & SWT 14
G Swing Swing Binding JList funktioniert nicht AWT, Swing, JavaFX & SWT 5
Blender3D Meine Swing Anwendung läuft unter Windows 10 und Ubuntu aber nicht auf Windows 7 AWT, Swing, JavaFX & SWT 16
B Bar Plot in Swing JPanel AWT, Swing, JavaFX & SWT 0
D Swing in Kombination mit JGraphX und JGraphT AWT, Swing, JavaFX & SWT 0
F main-Funktion bei Swing AWT, Swing, JavaFX & SWT 4
S Java Swing Print() method AWT, Swing, JavaFX & SWT 4
S Java Swing auf Windows Phone AWT, Swing, JavaFX & SWT 6
I JAVAFX - Übergabe der Inhalte an eine Scene - Wo ist der Vorteil gegenüber Swing? AWT, Swing, JavaFX & SWT 2
S Manuelles Menu in Swing AWT, Swing, JavaFX & SWT 3
T Custom Window ohne Swing / AWT / FX..?! AWT, Swing, JavaFX & SWT 1
MaxG. Swing Swing Komponenten zur Laufzeit hinzufügen AWT, Swing, JavaFX & SWT 2
Java_RY Bin Ratlos bzgl Malen in Swing AWT, Swing, JavaFX & SWT 5
offi Swing Shuttle List AWT, Swing, JavaFX & SWT 9
I Graph mit Swing zeichnen AWT, Swing, JavaFX & SWT 8
D Swing Swing Objekte sehen im Entwurf anders aus als beim Ausführen AWT, Swing, JavaFX & SWT 3
S Swing & Clean und build Problem AWT, Swing, JavaFX & SWT 12
javampir Swing repaint in JavaFX Anwendung AWT, Swing, JavaFX & SWT 3
K Mit JavaFX angefangen. Lohnt sich Swing? AWT, Swing, JavaFX & SWT 28
B Swing Update Swing Komponente bevor Methode startet. AWT, Swing, JavaFX & SWT 4
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
M Swing Swing-Widgets und paintComponent() AWT, Swing, JavaFX & SWT 2
B Swing WindowBuilde: Menu -> anderes Panel wechseln AWT, Swing, JavaFX & SWT 1
K eigener button in swing AWT, Swing, JavaFX & SWT 3
A JavaFX DatePicker in Swing beim Start nicht sichtbar AWT, Swing, JavaFX & SWT 2
windl Bufferstrategy in Swing nachstellen AWT, Swing, JavaFX & SWT 0
M Kamera in Java Swing einbinden AWT, Swing, JavaFX & SWT 4
Z Swing Swing und die Progressbar AWT, Swing, JavaFX & SWT 1
J Frage zur objektorentierten Swing Programmierung AWT, Swing, JavaFX & SWT 10
Xanny 2D-Grafik Beginner! Probleme mit Swing, Gprahics class und paint AWT, Swing, JavaFX & SWT 13
F Java Swing Rechteck in JPanel zeichnen AWT, Swing, JavaFX & SWT 7
N Swing Benötige Hilfe um ein Swing Canvas zu speichern AWT, Swing, JavaFX & SWT 4
stylegangsta JButton Fehelr javax.swing.ImageIcon.<init>(Unknown Source) AWT, Swing, JavaFX & SWT 24
RalleYTN Swing JavaFX VideoPlayer in Swing einbetten. Ich komm nicht an die Dimension des Videos! AWT, Swing, JavaFX & SWT 0
T swing läuft nur beding flüssig AWT, Swing, JavaFX & SWT 1
A Sonderzeichen bei Swing AWT, Swing, JavaFX & SWT 3
L DoubleBuffering unter Swing AWT, Swing, JavaFX & SWT 0
N Programm mit Swing und Thread, Figur bewegen sich nicht AWT, Swing, JavaFX & SWT 6
D Java Swing, Label lässt sich nicht mit Checkboxen/Knopf verändern AWT, Swing, JavaFX & SWT 2
J Swing Basics - JButton funktioniert nicht. AWT, Swing, JavaFX & SWT 1
J Swing/AWT | Dynamisch erzeugte Objekte ansprechen AWT, Swing, JavaFX & SWT 1
N JavaFX Umstieg von Swing auf Java FX AWT, Swing, JavaFX & SWT 6
J GUI Anfänger einfaches Program AWT, Swing, JavaFX & SWT AWT, Swing, JavaFX & SWT 3
M Swing Grundlegende Frage zu SWING mit WindowBuilder AWT, Swing, JavaFX & SWT 11
M Plugin oder eigenes Tool mit zB SWING AWT, Swing, JavaFX & SWT 2
Z Java-Swing : JComponent AWT, Swing, JavaFX & SWT 2
Z Swing Swing: Elemente werden doppel/verschoben gezeichnet, sind teils unsichtbar etc... AWT, Swing, JavaFX & SWT 10
S JComboBox aus anderer Klasse füllen (Java-Swing) AWT, Swing, JavaFX & SWT 0
N JComboBox in JTable [Swing] -> totaler UI-Einsteiger AWT, Swing, JavaFX & SWT 3
T Swing Kompatibilitätsproblem zwischen Swing und JavaFX AWT, Swing, JavaFX & SWT 4
M Layout-Probleme unter Swing AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen


Oben