JFrame maximieren/minimieren Problem

bleifresser

Mitglied
Hi,
ich weiß nicht genau wie ich mein Problem in Worte fassen soll. Ich versuch es einfach mal:

Ich habe ein JFrame den ich maximiert starte (mit frame.setExtendedState(JFrame.MAXIMIZED_BOTH);).
Nachdem der JFrame gezeichnet wurde (frame.setVisible(true);), setze ich frame.setResizable(false).
Damit ist er maximiert und die Win Taskleiste bleibt mir erhalten. Wenn ich nun das Programmfenster verkleiner (so das es in der Taskleiste verschwindet) und es wieder maximiere (aus Taskleiste), wird es über die Taskleiste hinweg maximiert.

Kann man das verhindern ?
Ich hab bereits versuch mit einem WindowStateListener bei Änderung des WindowState den JFrame wieder Resizeable zu machen, doch leider bleibt er das auch und man kann danach die Größe beliebig verändern. Das ist schlecht, da ich nicht mit LayoutManager arbeite sonder die Elemente mir ELEMENT.setBounds(...) platziere.

Ich hoffe man versteht was ich meine und kann mir damit weiterhelfen.
 
Hallo BleiEsser,

ich würde das setextendstate weglassen.

JFrame f = new JFrame();

Die gewünschte Größe zuweisen
f.setSize(300,400);

dann mit

f.setResizable(false);

verhindern das die größe des frames geändert werden kann.

f.setVisible(true);

Dein Fenster wird jetzt in der angegebenen Größe angezeigt werden. Du kannst es minimieren und wieder maximieren. Es wird die mit setsize bestimmte größe beibehalten.

VG Erdal
 
So hatte ich es am Anfang, ich wollte aber das Programm auf dem ganzen Bildschirm haben und das auch bei unterschiedlichen Auflösungen.
Mir wird wohl nix übrigbleiben, als mein ganzes Layout mit Managern neu aufzusetzen ;(, was bei einer 4 spaltigen Tabelle + 5 Buttons + 6 Textfelder+ ein paar Borders eine gnzschöne Arbeit wird.
Trotzdem danke.
 
Hallo Bleiesser,

ich kann dir nicht ganz folgen. Du möchtest die Komponenten auf dem Fenster mit festen Pixelwerten Anordnen, Ausrichten und dabei soll das Fenster auch maximiert sein. Offensichtlich haben nicht alle Bildschirme die gleiche Auflösung, die gleichen Maße. Wie soll das klappen?

Die Lösung für dich heißt meines Erachtens Gridbaglayout. So schwer ist das nicht. Schau dir die Beispiele unter folgenden Links an:

D.Punkt

Java ist auch eine Insel

Java Tutorial

Auch solltest du eventuell GridBagLayout mit GridLayout kombinieren. Beispielsweise, wenn die Buttons oder die Textkomponenten Spaltenweise oder Zeilenweise angeordnet werden sollen und diese die gleiche Größe haben sollen. Ist das mit GridLayout leicht zu realisieren. Du kannst dann beispielsweise die Textkomponenten mit GridLayout auf ein JPanel setzen und diese dann in dein Frame welches GridBaglayout verwendet einfügen.

Versuchs einfach mal, wenns irgendwo hängt kannst nochmal nachfragen.

VG Erdal
 
Danke.

Ich dachte mir schon das es auf GridBagLayout hinauslaufen wird. Ich hab mich mit den festen Pixelwerten da in etwas versteift (da ich es so gelernt habe) und muss mich davon lösen.
 

Neue Beiträge

Zurück