GUI-Projekt realisieren

Mongo112

Mitglied
Hallo,

Ich hatte früher schon etwas (aber nur sehr wenig) mit Java zu tun, in letzter Zeit gar nichts mehr.
Nun möchte ich wieder in die Materie einsteigen und eine einfache GUI programmieren (mit dem Window Builder und Eclipse, falls das wichtig sein sollte) und stehe vor einem Problem.

Ich habe zwei Klassen:
GUI.java
Main.java

In GUI.java soll nur die Oberfläche rein, aber keinerlei Berechnungen, in Main.java soll die gesamte Logik hinein. In der GUI-Klasse habe ich zum Beispiel ein paar Checkboxes, Buttons, JLabels,...

Jetzt möchte ich - nachdem man auf den Button geklickt hat - den Status jeder einzelnen Checkbox überprüfen und ggf. danach etwas tun. Das sollte mit einem ActionListener für den Button und für die Checkbox mit checkbox.isSelected() funktionieren, oder?

Jedoch stellt es mich schon vorher auf: WIE bekomme ich alles von der GUI-Klasse in die Main-Klasse? Also alle Checkboxes, damit ich von der Main-Klasse darauf zugreifen kann.
Ich würde das gerne mit Getter-/Setter-Methoden machen, aber wie genau?

Vielen Dank im Voraus,
Herbert
 

Mongo112

Mitglied
Also:

Klasse GUI.java: Enthält nur Buttons, Checkboxes, JLabels,...
Klasse Main.java: soll später die ganze Logik enthalten.

In GUI.java sollen keinerlei Berechnungen, die Klasse soll nur die GUI an sich beinhalten. Also muss ich von Main.java irgendwie auf die Checkboxes zugreifen können bzw. deren Status abfragen können - gleiches gilt für den Button. Die ganzen Berechnungen sollen ja erst ausgeführt werden, wenn der Button geklickt wird. Wenn alles in einer Klasse wäre, wäre das ja kein Problem, ich möchte es aber sauber in 2 Klassen aufteilen.

Wie löse ich dieses Problem?
 

JavaMeetsBlueJ

Bekanntes Mitglied
Wie gesagt ich bin auch noch nicht sooo in Java vertraut, aber ich wusste gerade selber nicht, wie ich es genau gemacht hätte... . Also meine Vorstellung ist folgende:

-Klasse, in die die GUI kommt.
-Klasse, in der du sie erzeugst und wo die Logik drin ist.
-Eine Klasse, die als Listener funktioniert und die ensprechenden Methoden implementiert.

Der Listener laucht ja auf Events und je nachdem, welche Events registriert werden bzw. welcher Button geklickt wird, rufst du im ActionListener die Methoden der Logik-Klasse auf.

Ich hoffe ich verstoße mit dem Beitrag nicht gegen irgendwelche Coding-Conventions, aber das scheint mir schlüssig. Bei MVC-Pattern bin ich nämlcih selber noch nicht :D

MfG
 

KrokoDiehl

Top Contributor
Das MVC-Muster (Model-View-Controller) ist schon dafür gedacht eine sinnvolle Trennung zu erreichen, ich empfehle dir auch da mal reinzuschauen.
Zur Kapselung kannst du in deiner Gui-Klasse natürlich Methoden anbieten wie
Code:
istXYgesetzt()
die dann von der Main-Klasse aufgerufen wird. Die
Code:
istXYgesetzt()
kapselt eigentlich nur ein
Code:
xyCheckbox.isSelected()
.
 

Mongo112

Mitglied
Hm, ich hab mir das MVC-Konzept mal angesehen und es gefällt mir schon mal ganz gut.
Folgendes Tutorial habe ich gefunden:
Tutorial: Model-View-Controller (MVC) Struktur in Java Projekten nutzen BigBastis Blog
Das hier habe ich auch noch gefunden: http://www.java-forum.org/allgemeines/91829-mvc.html

Nur irgendwie verstehe ich nicht alles davon.


In meinem Programm steht das Design der GUI - sonst noch nichts.

3 Fragen:
  • Wieso kann ich Controller und Model nicht in einer Klasse zusammenfassen?
  • Wie überprüfe ich am besten, welche der 10 Checkboxes gesetzt ist? Gibt es eine andere Möglichkeit, als bei jeder einzeln den Status mit einem if abzufragen (vlt. kann man irgendwie ein Array der Checkboxes erstellen, den Status in ein anderes Array schreiben und dieses dann ausgeben?)?
  • Je nachdem, welche Checkbox ausgewählt sind, soll in ein File ein bestimmter Text hineingeschrieben werden. Wo speichere ich den Text dazu am besten? In einem Array, wo dann je nach gewählter Checkbox der Text hinausgeschrieben wird? Wie man ein File erzeugt und hineinschreibt weiß ich, aber nicht in Verbindung mit einer GUI, wo je nach Wahl der Users Text hineingeschrieben wird.
Danke
 

julian.veh

Bekanntes Mitglied
Hast du denn schonmal was von Parameterübergabe gehört?

einfaches Bsp:
Java:
public class Eins {
public int addiere(String zahlA, String zahlB) {
return Integer.parseInt(zahlA) + Integer.parseInt(zahlB);
}

public class Test {
//GUI mit Textfeldern tf1 und tf2
private Eins eins;
public Test() {
this.eins = new Eins();
System.out.println("" + eins.addiere(tf1.getText(), tf2.getText());
}
}

gruß julian
 

Mongo112

Mitglied
Ja, aber was hat das mit meiner Frage zu tun? ;)

Wo speichere ich den zu den Checkboxes zugehörigen Code? Array, extra Text-File,...? Was ist die beste Methode dazu?
 

JavaMeetsBlueJ

Bekanntes Mitglied
Getreu dem Motto "Programmieren lernt man nur, indem man es macht" probier das doch einfach mal und erstell ein checkbox-Array;) um die if-Abfragen wirst du trotzdem nicht rumkommen. Eine Möglichkeit wäre halt noch, jeder Checkbox einen eigenen Listener zu geben.

MfG
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
MiMa JUnit5 im JavaFX Projekt AWT, Swing, JavaFX & SWT 2
B Java Projekt mit JavaFX und jfoenix ausführbar machen AWT, Swing, JavaFX & SWT 46
H JavaFX wie JavaFX Projekt aufsetzen? AWT, Swing, JavaFX & SWT 10
G JavaFX Code in neues Projekt übernehmen AWT, Swing, JavaFX & SWT 0
N JavaFX Javafx intelij Projekt zu ausführbaren jar Datei Machen AWT, Swing, JavaFX & SWT 1
Z GUI Forms - Mehrere Fenster in einem Projekt AWT, Swing, JavaFX & SWT 18
L FX-Projekt: fast leere Fensterausgabe ohne Fehlermeldung AWT, Swing, JavaFX & SWT 6
N JavaFX Projekt nachträglich zu JavaFX Application machen? AWT, Swing, JavaFX & SWT 1
ruutaiokwu SWT "Google Window Builder" tut keine jar's ins Projekt rein bei SWT-Projekt AWT, Swing, JavaFX & SWT 22
VPChief Eclipse: Projekt mit src ordner exportieren. AWT, Swing, JavaFX & SWT 76
Zrebna JavaFX-Projekt mit Bildern funktioniert nicht - um Hilfe wird gebeten AWT, Swing, JavaFX & SWT 14
ZH1896ZH MineSweeper Projekt: Testen nicht möglich AWT, Swing, JavaFX & SWT 6
N Ausführbare Datei aus JavaFX Projekt erstellen AWT, Swing, JavaFX & SWT 22
MiMa Java Projekt nach JavaFX convertieren AWT, Swing, JavaFX & SWT 4
M Java Gui Projekt, Würfelspiel AWT, Swing, JavaFX & SWT 2
Sam96 JavaFX mit Sqlite Projekt mit jar zu groß AWT, Swing, JavaFX & SWT 10
A Wie baue ich das Bus-System in ein Java Projekt ein? AWT, Swing, JavaFX & SWT 5
B Pong Projekt mit LWJGL Klassen exportieren AWT, Swing, JavaFX & SWT 14
C Hilfe beim programmieren mit studiumgebundenes Projekt AWT, Swing, JavaFX & SWT 1
J Frage zu Java Projekt [2D Game] AWT, Swing, JavaFX & SWT 3
Tom299 JavaFX Projekt-Struktur AWT, Swing, JavaFX & SWT 2
S Projekt: Meisterschaft - Abspeichern bereits gemachter Schritte AWT, Swing, JavaFX & SWT 2
M JavaFX MSI oder EXE aus JavaFX Projekt erstellen? AWT, Swing, JavaFX & SWT 2
Birke Swing Neue Swing LayoutManager: TOnion Projekt AWT, Swing, JavaFX & SWT 10
R JavaFX Mein SceneBuilder Projekt AWT, Swing, JavaFX & SWT 3
D Ambitioniertes Projekt - Brauche Stichworte AWT, Swing, JavaFX & SWT 4
J Swing Window-Builder-Projekt richtig übertragen AWT, Swing, JavaFX & SWT 2
J Das erste Projekt und ein Haufen von Fragen. Der SudokuReader. AWT, Swing, JavaFX & SWT 4
D Java Projekt als Jar AWT, Swing, JavaFX & SWT 3
J jme neues projekt öffnen AWT, Swing, JavaFX & SWT 4
J Projekt Olympische Spiele AWT, Swing, JavaFX & SWT 12
F Netbeans Gui in BlueJ Projekt AWT, Swing, JavaFX & SWT 9
X Resourcen in Projekt einbinden AWT, Swing, JavaFX & SWT 7
R jFreeChart in eine NetBeans Projekt integrieren AWT, Swing, JavaFX & SWT 24
D Swing MVC in Projekt umsetzen AWT, Swing, JavaFX & SWT 71
D Swing Projekt Herangehensweise Swing AWT, Swing, JavaFX & SWT 6
N Swing Projekt - jar ausführen AWT, Swing, JavaFX & SWT 11
C Problem mit Swing Application Framework - Projekt beim AWT, Swing, JavaFX & SWT 2
W netbeans projekt in Eclipse importieren -gui teil geht nicht AWT, Swing, JavaFX & SWT 5
C Mein erstes kleines Swing-Projekt - Probleme AWT, Swing, JavaFX & SWT 8
M Einstellung des Projekt-Verzeichnis in NetBeans AWT, Swing, JavaFX & SWT 4
T Projekt - ChatClient - JEditorPane - Smilies, Vektor AWT, Swing, JavaFX & SWT 2
D Events, Listener, GUI . Größeres Projekt AWT, Swing, JavaFX & SWT 4
M java projekt als exe kompilieren. AWT, Swing, JavaFX & SWT 2
M Wie am besten realisieren AWT, Swing, JavaFX & SWT 3
A Einfache Benutzeroberfläche wie realisieren? AWT, Swing, JavaFX & SWT 6
S LayoutManager Einfaches Programm mit VE und Eclipse3.6 realisieren AWT, Swing, JavaFX & SWT 2
Semox Swing Shortcuts in Menü realisieren AWT, Swing, JavaFX & SWT 2
M Swing Wie AutoVervollständigen bei Kundensuche realisieren? AWT, Swing, JavaFX & SWT 11
vladimir Swing virtuelle Tastatur realisieren AWT, Swing, JavaFX & SWT 3
T Wie könne man das realisieren? AWT, Swing, JavaFX & SWT 18
G Popup eines Bildes im JTable realisieren AWT, Swing, JavaFX & SWT 3
F Listener als separate Klasse realisieren ? AWT, Swing, JavaFX & SWT 3
A Wie folgendes am besten realisieren (Multithreading.) AWT, Swing, JavaFX & SWT 16
G Personendatenbank mit Listbox realisieren? AWT, Swing, JavaFX & SWT 9
J DB-Ausgabe realisieren? AWT, Swing, JavaFX & SWT 2
H Wie realisieren? AWT, Swing, JavaFX & SWT 2
Z Hilfe! wie kann ich das realisieren? AWT, Swing, JavaFX & SWT 3
O Stopuhr realisieren AWT, Swing, JavaFX & SWT 6
thE_29 JScrollPane: Zeilensprünge realisieren AWT, Swing, JavaFX & SWT 2
A Stundenplan realisieren AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen


Oben