Fenstergrösse verändern

durstig

Grünschnabel
Hallo Zusammen

Ich hoffe einer von euch, kann mir erklären wie ich unter Swing die Grösse des JFrames immer auf so einstellen kann, dass es meinen Bildschirm füllt. Oder das ich es einstellen kann, das die Position immer in der Mitte des Fensters ist.

Habe es versucht zu realisiern mit preferedsize() hatte aber nicht ganz geklappt.

Ich bedanke mich schon mal im voraus:-(.
 
Hallo,

Versuch es mal mit setSize(). Von der Klasse Toolkit kannst du die momentane Auflösung bekommen.

Das Fenster mittig zu bekommen ist auch einfach.
Seit Java 5 gibt es die Methode setLocationRelativTo. Da übergibst du einfach null und dann ist das Fenster mittig.

Code:
frame.setLocationRelativTo(null);

Einen Rat gebe ich dir. Such das nächste mal bei Google. Ich hatte das damals auch gemacht und musste nicht lange suchen. Sonst brauchst du dich nämlich nicht zu wundern, wenn niemand antwortet.
Das ist nicht böse gemeint, aber man sollte schon etwas Selbstinitiative zeigen.

MFG

zEriX
 
Hallo,
ich weiss der Thread ist schon ziemlich alt.
Aber,
wenn du gemeint hast das dein Frame in der Mitte deines Bildschirms erscheint, dann bringt setLocationRelativeTo(null) nicht viel, z.B. bei mir (22 Zoll Widescreen) erscheint das Frame dadurch unten rechts und fast aus dem Bildschirm raus...

Besser ist mit setLocation();
Vorher über das Toolkit deine "Bildschirmgrösse" ermitteln und breite wie auch höhe durch 2 teilen, die grösse deines frames ermitteln und auch wieder breite und höhe durch 2 teilen...
hier mal ein Beispiel: (der Methode übergibst du dein Frame oder JFrame oder was auch immer... ^^ )

Java:
 public static Point showWindowInMiddleOfDisplay(Component _comp)
	{
		Dimension dm = Toolkit.getDefaultToolkit().getScreenSize();
        double width = dm.getWidth();
        double height = dm.getHeight();
        double xPosition = (width / 2 - _comp.getWidth() / 2);
        double yPosition = (height / 2 - _comp.getHeight() / 2);
        _comp.setLocation((int) xPosition, (int) yPosition);
        Point pt = new Point();
        pt.setLocation(xPosition, yPosition);
        return pt;
	}

Es wird ein "Point" zurückgegeben den du deinem Frame übergibst, z.B. so:
Java:
 MyFrame.setLocation(showWindowInMiddleOfDisplay(MyFrame));

Und schon erscheint dein Frame immer in der Mitte deines Bildschirms...

EDIT: sorry leutz, irgendwas muss schief gelaufen sein als ich die Methode setLocationRelativeTo(Component c) ausprobiert habe, habe die Methode heute nochmal angewendet und alles wunderbar...
Mein Fehler, sorry für das "umständliche" Zeug... sorry sorry sorry :-(

gruss
 
Zuletzt bearbeitet von einem Moderator:
Zurück