Gui auslagern/verkleinern

DrZaius

Mitglied
Heyho

ich bin gerade an einem Projekt, bei dem ich eine relativ großes GUI benötige. Ich benutze das GridBagLayout, aber der Code ist noch lange nicht fertig, dennoch schon bei 400 Zeilen

Ich habe immer mal wieder was von "auslagern" gelesen, habe aber keine Beispiele gefunden, wie man einzelne Teile der GUI auslagert. Der Code besteht bisher nur aus GUI, und ich habe erst 3 Panels erstellt und trotzdem 400 Zeilen...
Könnte mir jemand das mit dem Auslagern beschreiben oder Beispielcode einfügen?
Außerdem hab ich noch von dem MVC gelesen, aber der ist mir zu kompliziert. Wenn es keine andere Lösung gibt schau ich mir den an :D
 

Thallius

Top Contributor
Du brauchst doch nur deine Panels in eigene Klassen auslagern ....

Kann es sein das du überhaupt keine Ahnung von OOP hast? Dann solltestcdu erstmal die Grundlagen lernen bevor du ein so großes Projekt angehst...

Gruß

Claus
 

Gucky

Top Contributor
Du könntest dein GUI in Sinnabschnitte unterteilen und dann mit dem FactoryPattern die entsprechenden Panels erstellen.

Also eine Klasse
LogInGUIFactory, die eine Methode createNewLogInGUI() bietet und ein solches Panel zurückliefert.

Oder, wenn du eine Funktionalität zum Panel hinzufügst, mit Vererbung arbeiten.
 

DrZaius

Mitglied
Also ich habe bisher schon relativ viel mit Java gemacht und kenn mich eigentlich ganz gut aus mit OOP ( also bezogen auf die Grundlagen). Ich hatte nur bisher keine "großen" GUIs erstellt. Aber ich versuchs mal so, wie ich mir das jetzt vorstelle. Ich dachte nur, dass das irgendwie komplizierter wäre mit dem Auslagern beim Gui.
Danke
 

Foxei

Bekanntes Mitglied
Wenn es Allgemein um Verkleinerung von Code geht sind mehrer Möglichkeiten möglich. Ich gehe meistens so vor:
  • Gibt es Code der oft wiederholt wird?
  • Ja im GridBagLAyout gibt es ihn nähmlich die GridBagConstance
Beispiel:
Java:
JLabel lbl_datei = new JLabel("Datei: ");
		GridBagConstraints gbc_lbl_datei = new GridBagConstraints();
		gbc_lbl_datei.insets = new Insets(0, 0, 5, 5);
		gbc_lbl_datei.anchor = GridBagConstraints.NORTHWEST;
		gbc_lbl_datei.gridx = 0;
		gbc_lbl_datei.gridy = 0;
		panel.add(lbl_datei, gbc_lbl_datei);
Okay bei großen Frame kommt dieser Code sehr oft also kürzen wir ihn. Wir erstellen uns eine Methode die genau das für und macht:
Java:
public GridBagConstraints createGridBagConstraints(int gridx,int gridy,int gridwidth,Insets insets,int fill){
		GridBagConstraints gbc=new GridBagConstraints();
		gbc.gridx=gridx;
		gbc.gridy=gridy;
		gbc.gridwidth=gridwidth;
		gbc.insets=insets;
		gbc.fill=fill;
		gbc.anchor=GridBagConstraints.NORTH;
		
		return gbc;
	}

Und schon kann ich meinen Ursprungs Code kürzen:
Java:
JLabel lbl_datei = new JLabel("Datei: ");
		GridBagConstraints gbc_lbl_datei = createGridBagConstraints(0, 0, 1, new Insets(0, 0, 5, 5), GridBagConstraints.NORTH);
		panel.add(lbl_datei, gbc_lbl_datei);

LG Foxei
 

DrZaius

Mitglied
Das mit der Funktion ist eine wirklich gute Idee, danke :)
Ich habe es bisher so gemacht, dass ich die Constraints einmal definiere und dann immer überschreibe
Ich hab das jetzt mit dem Auslagern von Panels angefangen und versuche es mal so. Das mit den Funktionen kann ich gut in den einzelnen Panels benutzen. :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
BabySuna Swing Komponenten auslagern auf separate Datei AWT, Swing, JavaFX & SWT 8
T JavaFX TableColumn in separate Klasse auslagern AWT, Swing, JavaFX & SWT 7
Joker4632 JFrame in eine Runnable auslagern? AWT, Swing, JavaFX & SWT 4
Java_RY AWT Frame in eine eigene klasse auslagern und aufrufen AWT, Swing, JavaFX & SWT 6
L Swing Teile eines JPanel in eigene Klasse auslagern AWT, Swing, JavaFX & SWT 3
K Swing paintComponent, JPanel auslagern, ChangeEvents AWT, Swing, JavaFX & SWT 7
T Swing Button bleibt grau [=> UI hat sich aufgehängt, Aufgabe in Thread auslagern] AWT, Swing, JavaFX & SWT 3
C JButton in andere Klasse auslagern AWT, Swing, JavaFX & SWT 3
U Frame öffnet anderes Frame: Methode auslagern AWT, Swing, JavaFX & SWT 26
0 (Action)Listener auslagern? AWT, Swing, JavaFX & SWT 9
M Events auslagern? AWT, Swing, JavaFX & SWT 6
ZH1896ZH JavaFX Wie kann ich die Fenstergrösse entsprechend dem Inhalt vergrössern/verkleinern AWT, Swing, JavaFX & SWT 2
S Kreis vergrößern/verkleinern mit Buttons AWT, Swing, JavaFX & SWT 1
S Bild mit ImageIcon auf GUI verkleinern AWT, Swing, JavaFX & SWT 3
M JavaFX Bildgröße verkleinern AWT, Swing, JavaFX & SWT 5
C LayoutManager Bei verkleinern des Fensters, verschieben sich JPanels übereinander. AWT, Swing, JavaFX & SWT 7
M Probleme mit Verkleinern eines GUI AWT, Swing, JavaFX & SWT 7
P Bilder verkleinern AWT, Swing, JavaFX & SWT 2
M ImageIcon Bild wird beim verkleinern des Fensters nicht verkleinert AWT, Swing, JavaFX & SWT 3
E Swing Den Button Vergrössern/Verkleinern entfernen AWT, Swing, JavaFX & SWT 4
E Swing JPanels durch ziehen am Rand vergrößern/verkleinern?! AWT, Swing, JavaFX & SWT 2
A AWT Buttons verkleinern AWT, Swing, JavaFX & SWT 7
P ScrollPane klappt zusammen beim verkleinern des Frames AWT, Swing, JavaFX & SWT 2
E Bild effektiv vergrössern / verkleinern (zoom) AWT, Swing, JavaFX & SWT 23
G JComboBox verkleinern AWT, Swing, JavaFX & SWT 6
G Icons verkleinern AWT, Swing, JavaFX & SWT 4
M ImageIcon in JLabel verkleinern AWT, Swing, JavaFX & SWT 8
F Wie Oberfläche verbessern? (JButtons, Textfeld verkleinern) AWT, Swing, JavaFX & SWT 5
A Icon verkleinern AWT, Swing, JavaFX & SWT 3
T BufferedImage verkleinern Resultat ist zu pixelig. AWT, Swing, JavaFX & SWT 6
P Inhalt eines Canvas verkleinern AWT, Swing, JavaFX & SWT 3
D Bilder verkleinern AWT, Swing, JavaFX & SWT 3
D bilder verkleinern AWT, Swing, JavaFX & SWT 3
C Componente verkleinern lasse wenn die Frame verkleinert wird AWT, Swing, JavaFX & SWT 2
G Fenster ohne "verkleinern","Schliessen", AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben