Oberfläche und "richtige" Programmierung

Status
Nicht offen für weitere Antworten.
O

osix2000

Gast
Hallo,

hier mein Problem, bin kein Anfänger, aber auch noch kein Experte....

Ich mache eine Klasse, die die main Methode enthält (Application) und die GUI in Swing. In meiner Anwendung gibt es mehrere Radiobuttons und Auswahlmenus. Wenn man eine bestimme Taste drückt, dann passiert etwas, jenachdem wie die Radiobuttons stehen. Also muß ich das ja abfragen.

In der main Klasse stehen alle GUI Befehle (JButton usw.) Ich habe einen eigenen Tastaturlistener in einer eigenen Klasse, die den orginal Tastaturlisten impementiert. Soweit so gut.

Das Problem ist: Ich muß doch immer in der Tastaturlistener Klasse auf Tastendrücke reagieren und dort auch verzweigen. Aber wenn ich wissen will, wie die Radiobuttons aus der Hauptklasse stehen kann ich das in der TastaturlistenerKlasse nicht abfragen...

Klar kann ich der Tastaturlistenerklasse Werte übergeben, mit denen sie was machen soll, aber woher soll die main Klasse wissen welche Taste gedrückt wurde ?

Meine bisherige Lösung ist, dass ich statische Methoden in der main Klasse habe, und diese statischen Methoden von der Tastaturlistenerklasse aus ausführe....

Ich hab aber das Gefühl, daß ich (als mit Prozeduren aufgewachsener Programmierer) da was ziemlich unschönes Programmiere....

Hat jemand einen Link auf ein Beispiel, wo mal ein größeres Beispiel gezeigt wird, nicht nur so 5 Zeilen mit 5 Buttons, sonder wo mal so richtig eine kleine Anwendung geschrieben ist, wo auch richtig was passiert. Also so mit JDialog usw...
aber auch nicht zu groß...

Danke euch schon im Vorraus !
 

HLX

Top Contributor
Du kannst eine Referenz auf deine Radiobuttons / Buttongroup an deinen Listener übergeben. Diese weist du dann einer Instanzvariable zu.

Beispiel:
Code:
public class TastaturListener {

      private ButtonGroup buttongroup;

      public TastaturListener(ButtonGroup newButtonGroup) {
            buttongroup = newButtonGroup;
      }
}

Jetzt kannst du im Listener drauf zugreifen.
 
O

osix2000

Gast
Das habe ich mir auch schon mal gedacht.
Dann muß ich aber alles, alles übergeben. Da sind nicht nur Radiobuttons, sondern auch noch andere GUI Sachen, und noch das BasicplayerObjekt vom MP3 Player. Das hatte ich schon mal so probiert, aber das war irgendwie auch nicht so toll, weil ich ja für jeden Button einen anderen Buttonlistener brauche, und somit wieder alle Objekte und Parameter übergeben muß.
 
O

osix2000

Gast
Danke, danke, danke...

GENAU so ein Beispiel, hab ich gesucht. Da werde ich mich mal einarbeiten und das genau studieren...
 

Marco13

Top Contributor
HLX hat gesagt.:
Wenn dein Listener so vielseitig ist, solltest du den ganzen Frame bzw. Dialog übergeben.
Hm. Ein erster kurzer Blick auf den verlinkten Thread ... dort sieht es eigentlich eher so aus, als ob dort ein Modell verwendet wird, und DAS ist imho das, was übergeben werden sollte. Vielleicht liegen die Buttons später nichtmehr in einem JFrame sondern in einem Applet, und es sind keine RadioButtons mehr sondern CheckBoxes.... im Modell kann man das nicht unterscheiden...
 

HLX

Top Contributor
Marco13 hat gesagt.:
HLX hat gesagt.:
Wenn dein Listener so vielseitig ist, solltest du den ganzen Frame bzw. Dialog übergeben.
Hm. Ein erster kurzer Blick auf den verlinkten Thread ... dort sieht es eigentlich eher so aus, als ob dort ein Modell verwendet wird, und DAS ist imho das, was übergeben werden sollte. Vielleicht liegen die Buttons später nichtmehr in einem JFrame sondern in einem Applet, und es sind keine RadioButtons mehr sondern CheckBoxes.... im Modell kann man das nicht unterscheiden...

Das Modell sollte auf keinen Fall irgendwelche GUI-Unterschiede behandeln. Das Modell ist von der GUI völlig zu trennen um eben verschiedene Oberflächen, wie z.B. Swing/SWT/Web anbinden zu können.

Listener sind im Link-Beispiel GUI-Controller. Sie handeln im Kontext einer bestimmten GUI-Komponente. Sie sind zwar getrennt von ihr, es besteht jedoch eine enge Beziehung. Für die Übergabe eines Frames spricht, dass der Controller nicht nur an den einzelnen Button gebunden wird, sondern die Gestaltung/Modifizierung der Oberfläche als Ganzes abhandeln soll.
 

Marco13

Top Contributor
HLX hat gesagt.:
Das Modell sollte auf keinen Fall irgendwelche GUI-Unterschiede behandeln.
Falls mein Beitrag anders interpretiert wurde: Genau so ist es. Und das meinte ich auch. Es wird das Modell vom GUI (bzw. dem Controller, was bei Java häufig "das gleiche" ist) verändert. Und von WELCHEM Controller es WIE verändert wird, ist ihm egal. Deswegen hätte ich jetzt gemeint, dass, wenn man "irgendeinen" Controller hat, der das Modell verändern will, man diesem Controller das Modell auch geben könnte/sollte, und nicht einen Umweg über einen weiteren Controller gehen sollte (d.h. man sollte nicht z.B. einem Panel (Controller) einen JFrame (Controller) übergeben, nur weil letzterer das Modell kennt. Aber vielleicht hab ich da auch was falsch verstanden. Bin noch nicht ganz wach... :roll:
 

HLX

Top Contributor
Genau. Ich hatte deinen letzten Satz anders verstanden. Ansonsten teile ich deine Ausführungen. Ich habe den Listener nur wegen seiner engen Beziehung zur GUI-Komponente "GUI-Controller" genannt: Er ist oft auf eine bestimmte Oberfläche ausgerichtet.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Londi Metro UI Oberfläche Allgemeine Java-Themen 1
M interaktive grafische Oberfläche - wie mach ich das am Besten Allgemeine Java-Themen 4
M Wie Java Programm mit grafischen Oberfläche versehen Allgemeine Java-Themen 2
D Grafische Oberfläche Allgemeine Java-Themen 3
B Execption auf Oberfläche werfen, try-catch-Block Allgemeine Java-Themen 6
M Applet Oberfläche aktualisieren Allgemeine Java-Themen 5
S Design Oberfläche Allgemeine Java-Themen 2
A Ereignisse ohne Oberfläche Allgemeine Java-Themen 3
GilbertGrape Jetty-Dienst startet keine Programme mit Oberfläche Allgemeine Java-Themen 2
E einfache grafische Oberfläche wie in MS C#? Allgemeine Java-Themen 6
S Random funktion in einer Grafischen Oberfläche Allgemeine Java-Themen 10
V Welche Oberfläche empfehlt ihr mir? Allgemeine Java-Themen 19
D SAP Oberfläche Allgemeine Java-Themen 11
O "Bonbon-Oberfläche" Allgemeine Java-Themen 3
J Aktualisieren einer Oberfläche Allgemeine Java-Themen 2
S grafische Oberfläche-> auslagern innerer klassen Allgemeine Java-Themen 5
N Graphische Oberfläche dynamisch erweitern möglich? Allgemeine Java-Themen 4
B Grafische Oberfläche - Welche Komponenten? Allgemeine Java-Themen 5
M 4gewinnt oberfläche Allgemeine Java-Themen 17
thE_29 Java Applikation ohne grafische Oberfläche Allgemeine Java-Themen 24
B Lottospiel, genug Reihen tippen für 3 Richtige (Spaß mit Arrays)? Allgemeine Java-Themen 46
N Ist Selenium hier das richtige Werkzeug? Allgemeine Java-Themen 1
F Java Script für das Vorhaben das richtige? Allgemeine Java-Themen 9
B Logikfehlersuche, das perfekte Lottosystem für 3 Richtige mit Arraylists? Allgemeine Java-Themen 61
F Java die richtige Sprache? - Anfänger Allgemeine Java-Themen 3
T If Vergleich ergibt nicht das richtige Ergebnis Allgemeine Java-Themen 2
U Welches ist das richtige Entwurfsmuster Allgemeine Java-Themen 2
P Richtige Verwendung eines Timers Allgemeine Java-Themen 8
L Richtige Dokumentation eines Java Programms Allgemeine Java-Themen 5
J JSP die richtige Wahl Allgemeine Java-Themen 2
Final_Striker Exceptionhandling: Richtige Verwendung des Try/Catch Blocks Allgemeine Java-Themen 14
P Ist Java überhaupt das Richtige für mich? Allgemeine Java-Themen 7
G "Richtige" Konsolenanwendung (wie z.B. nano, cente Allgemeine Java-Themen 4
B Java, Ant und das richtige JDK? Allgemeine Java-Themen 9
T Ist IAdaptable die richtige Lösung? Allgemeine Java-Themen 4
L Welche Collection ist die richtige ? Listen mergen Allgemeine Java-Themen 3
K Richtige JVM für jar Ausführung? Allgemeine Java-Themen 4
meez Vectoren vs. "richtige" Arrays Allgemeine Java-Themen 18
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
districon Rekursion und Dynamische Programmierung Allgemeine Java-Themen 2
D Vigenere Chiffre Programmierung Allgemeine Java-Themen 5
G Thread-Programmierung Allgemeine Java-Themen 5
R Input/Output Programmierung mithilfe der Robot Bibliothek Allgemeine Java-Themen 15
MiMa Programmierung von Bibliotheksklassen Allgemeine Java-Themen 3
zhermann Grundsatzfrage zur strukturierter Programmierung Allgemeine Java-Themen 5
S Kaffemaschine Programmierung Probleme Allgemeine Java-Themen 2
P jCheckBox auf der zusammengeknüpften Programmierung anzeigen lassen Allgemeine Java-Themen 3
K Test-Frist Programmierung - wie vorgehen Allgemeine Java-Themen 5
C Programmierung von Fotoeffekten mit Java möglich? Allgemeine Java-Themen 3
J Rekursive Programmierung-Zählen von Ziffern Allgemeine Java-Themen 5
L Designfrage: Dispatcher-Programmierung - redundante Auslegung Allgemeine Java-Themen 1
E Sonderzeichen nicht setzbar: Großes Problem bei Programmierung unter Linux Mint mit Virtual Box Allgemeine Java-Themen 5
C BlackBox-Framework - Plugin Programmierung Allgemeine Java-Themen 4
S Objekt orientierte Programmierung Allgemeine Java-Themen 7
E Socket Client-Server-Programmierung Allgemeine Java-Themen 44
M Parallele Programmierung: volatile Variable nimmt ungewöhnlichen Wert an Allgemeine Java-Themen 3
C Open Soure Projekte für parallele Programmierung Allgemeine Java-Themen 6
E Thread Programmierung Allgemeine Java-Themen 2
K Multithread Programmierung...ExecutionCompletionService Allgemeine Java-Themen 7
E objektorientierte Programmierung Allgemeine Java-Themen 3
C Hilfe bei Adressbuch-Programmierung, wie am Besten mit JList implementieren Allgemeine Java-Themen 2
J Problem mit der Thread Programmierung Allgemeine Java-Themen 2
T Fehler bei der Programmierung eines Universaldienstbrowsers Allgemeine Java-Themen 3
J 3d-Programmierung Allgemeine Java-Themen 7
S BlueJ BlueJ - Geldautomat-Programmierung Allgemeine Java-Themen 2
G Funktionale Programmierung, OO- Programmierung, ... Allgemeine Java-Themen 9
J Hardware Programmierung Allgemeine Java-Themen 3
Kr0e Atomic / Lockfree Programmierung Allgemeine Java-Themen 11
6 Java - Threads - parallele Programmierung - Tutorial Allgemeine Java-Themen 6
I parallele Programmierung mit Java Allgemeine Java-Themen 3
X Error bei der Programmierung eines Sortieralgorithmus Allgemeine Java-Themen 2
J Modul/Komponenten/Addon-Programmierung Allgemeine Java-Themen 3
ModellbahnerTT Dynamische Programmierung, komme nicht weiter.... Allgemeine Java-Themen 15
S Applet Programmierung in Eclipse Allgemeine Java-Themen 12
B Observer vs Listener (GUI-Programmierung) Allgemeine Java-Themen 5
Developer_X Batch Programmierung Allgemeine Java-Themen 4
Developer_X Datei Programmierung Allgemeine Java-Themen 18
hdi Suche nach Begriff aus der Programmierung Allgemeine Java-Themen 11
K Programmierung einer Hilfe Allgemeine Java-Themen 6
G Threads programmierung Allgemeine Java-Themen 7
F Frage zu JSP / Java Programmierung Allgemeine Java-Themen 2
L Brauche Hilfe bei Memory Programmierung Allgemeine Java-Themen 2
G Framework für Multi-Prozessor-Programmierung? Allgemeine Java-Themen 4
tomtailor Mobiltelefon - Programmierung Allgemeine Java-Themen 8
ven000m Constraint Programmierung Allgemeine Java-Themen 6
X Langsames Java im Bereich der GUI-Programmierung Allgemeine Java-Themen 8
F Klausuraufgaben Java-Programmierung Allgemeine Java-Themen 10
D Elegante Programmierung. Allgemeine Java-Themen 7
G Software für Java programmierung Allgemeine Java-Themen 5
J Frage zu Objektorientierter Programmierung Allgemeine Java-Themen 9
K Bubblesort Programmierung, finde Fehler nicht . Allgemeine Java-Themen 25
bernd Hardwarenahe Programmierung Allgemeine Java-Themen 14
S Taschenrechner und Programmierung Allgemeine Java-Themen 4
D Fraen zur Programmierung einer Volltextsuche Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben