Java Swing / WinBuilder: Wie kann ich die Größe meines Fensters festlegen und via Button ein Fenster schließen?

3 Antworten

1) Entweder du definierst eine feste Größe mit setSize oder du lässt Swing mit pack selbst berechnen, wie viel Platz die Komponenten überhaupt benötigen.

2) Ist es überhaupt notwendig, jedesmal ein neues Fenster zu öffnen? Es sollte doch ausreichen, die Oberfläche des aktuellen Fensters anzupassen.

Ein CardLayout kann, sollte sich die Anzahl und Anordnung der Komponenten jeweils ändern, hilfreich sein. Dabei würde ich allerdings die verschiedenen Seitentypen zu Templates zusammenfassen und bei einem Wechsel zu Seite XY nur die Texte neu setzen.

Beachte, dass der Swing-relevante Part innerhalb des Event Dispatch Threads ausgeführt werden sollte.

1.)

Da ich nicht weiß wie dein Code für das Fenster aussieht kann ich jetzt nur vermuten was helfen könnte. Ich nehme an du verwendest ein JFrame? Hast du es schon einmal mit der Funktion 'setSize' von der JFrame Klasse versucht?

2.)

Wenn du ein JFrame schließen möchtest reicht das aus:

frame.dispatchEvent(new WindowEvent(frame,WindowEvent.WINDOW_CLOSING));

Wobei du darauf achten musst das du möglicherweise den Bezeichner 'frame' anpassen musst auf deinen Code.

Woher ich das weiß:eigene Erfahrung

Du kannst die Größe mit frame.setSize(Breite, Höhe) das Fenster größer machen.

Wie hast du denn die "Folien" aufgebaut? Wenn sich ein neues Frame aufbaut kannst du einfach frame.dispose() (mit Java swing) machen.