JFrame an Fenstergröße anpassen

S

Schaaaf

Bekanntes Mitglied
Hallo,

wenn ich die Größe meines Fensters (z.B. durch maximieren oder ziehen mit der Maus) ändere, dann möchte ich auch, dass mein JFrame mit allen seinen Panels sich an diese Änderung anpasst. Ist das machbar? wenn ja, wie?
 
J

_java_freak_

Mitglied
Du kannst mit getHeight() und getWidth() die höhe und breite ermitteln und dann die größe der Panels mit setSize(int, int) anpassen.
 
S

Schaaaf

Bekanntes Mitglied
Ich verwende BorderLayout().

Ja, das Frame ist ja das Fenster, aber die Panels darauf passen sich halt nicht an. :-(

getHeight/getWidth : Welche Höhe/Breite bekomme ich damit? Von dem Frame oder von was?
 
xehpuk

xehpuk

Top Contributor
Doch, doch. Wenn ein Layout-Manager im Spiel ist, werden sich die Komponenten auch anpassen.

Hier als Beispiel:
Java:
import java.awt.BorderLayout;
import java.awt.Color;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;

public class LayoutTest {
	public static void main(final String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				final JFrame frame = new JFrame();
				frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				add(frame, BorderLayout.NORTH);
				add(frame, BorderLayout.SOUTH);
				add(frame, BorderLayout.WEST);
				add(frame, BorderLayout.EAST);
				add(frame, BorderLayout.CENTER);
				frame.pack();
				frame.setLocationRelativeTo(null);
				frame.setVisible(true);
			}
		});
	}
	
	private static void add(final JFrame frame, final String text) {
		frame.add(label(text), text);
	}
	
	private static JLabel label(final String text) {
		final JLabel label = new JLabel(text, SwingConstants.CENTER);
		label.setBorder(BorderFactory.createLineBorder(Color.BLACK));
		return label;
	}
}
North und South strecken sich in der Breite, West und East in der Höhe. Center in beide Richtungen.

Am besten zeigst du uns anhand von Code und ggf. Screenshots, was du meinst.

getHeight/getWidth : Welche Höhe/Breite bekomme ich damit? Von dem Frame oder von was?
Die der Komponente, auf die du die Methoden aufrufst.
 
Zuletzt bearbeitet:
S

Schaaaf

Bekanntes Mitglied
So wie im Bild meine ich das mit dem nicht anpassen. Es werden einfach Objekt abgeschnitten, anstat sie kleiner zu machen
 
xehpuk

xehpuk

Top Contributor
Sieht wie ein
Code:
setLayout(null)
auf die einzelnen Komponenten aus, also kein Layout-Manager vorhanden.

Fehlt nur noch der Code. :)
 
B

bygones

Gast
mhm - was passiert eigentlich wenn ich auf meinem Panel eine Component habe (zb Table), die eine gewisse Groesse braucht, diesen aber nicht in eine ScrollPane packe.
Kommt es nicht dann auch zu solchen Erscheinungen ?

mal so geraten
 
S

Schaaaf

Bekanntes Mitglied
Nein, ich mache derzeit :
Java:
setLayout(null)

Ich ändere das mal auf BorderLayout... Mal sehen, ob es dann geht?
 
S

Schaaaf

Bekanntes Mitglied
So, alles geändert. Aber wenn ich das Fenster zu weit in der Höhe "zusammendrücke" (--> kleinere Höhe) , dann verschwindet auf dem rechten Panel (siehe Skizze) das untere Panel ganz.
 
G

Gast2

Gast
Nein, ich mache derzeit :
Java:
setLayout(null)

Ich ändere das mal auf BorderLayout... Mal sehen, ob es dann geht?

Das wirst du müssen, Das JFrame wird durch den vorhandenen LayoutManager zwar die Panels neu layouten. Die Panels werden aber aufgrund des nicht vorhandenen Layouts die in IHNEN angeordneten Komponenten nicht neu layouten. Daher das Problem.

Generell sollte man null Layout eigentlich meiden wie die ****
 
S

Schaaaf

Bekanntes Mitglied
Wie gesagt hab jetzt überall Layouts gesetzt, aber dennoch rückt auch z.B. das "Gemalte" eines Panels nicht in dessen MIttelpunkt, sonder bleibt am ursprünglichen Punkt kleben.
 
V

vanny

Gast
Ich hatte auch schon das Problem, dass trotz LayoutManager einige Komponenten einen gewissen Mindestplatz benötigen, der zwar unterhalb der Startgröße des JFrames liegt aber beim nachträglichen Minimieren zu einem unschönen Ergebnis führt.

Ich hab dann einfach beim Initialisieren des JFrames alle Komponenten geadded und dann MeinJFrame.pack(); aufgerufen, danach MeinJFrame.setMinimumSize(MeinJFrame.getSize()); und dann MeinJFrame.setSize(dieStartGroesse);.
Danach dann erst MeinJFrame.setVisible(true);.

Dadurch kannste deinen JFrame dann zwar frei skallieren aber halt nur so weit verkleinern wie´s auch gut aussieht.

Gruß Vanny

[EDIT]Macht natürlich nur Sinn, wenn deine Komponenten eine vernünftige PrefferedSize liefern[/EDIT]
 
Zuletzt bearbeitet von einem Moderator:
S

Schaaaf

Bekanntes Mitglied
Danke, ich werde es mal probieren.

Was heißt denn "vernünftige PrefferedSize"?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Tobero JFrame nimmt keinen Key oder Maus inputs Allgemeine Java-Themen 0
FRI3ND JFrame wird nicht angezeigt Allgemeine Java-Themen 3
N JFrame für Minispiele Allgemeine Java-Themen 14
F JFrame fü Eclipse wie? Allgemeine Java-Themen 6
4 Swing JFrame BackgroundColor Allgemeine Java-Themen 3
RalleYTN Merkwürdiger Fehler mit JFrame im Vollbild Allgemeine Java-Themen 4
snipesss Visueller Countdown in JFrame Allgemeine Java-Themen 1
K Swing OpenStreetMap in JFrame einfügen Allgemeine Java-Themen 1
K Best Practice JFrame Objekt allgemein zugänglich machen Allgemeine Java-Themen 8
S JFrame Variable mitgeben Allgemeine Java-Themen 5
F JFrame übergeben Allgemeine Java-Themen 5
B JFrame Text Ausgabe Allgemeine Java-Themen 7
T JFrame Overlay Allgemeine Java-Themen 1
I JPanel soll sich dem JFrame anpassen Allgemeine Java-Themen 1
I JFrame vor schliessen, methode auführen Allgemeine Java-Themen 2
I JFrame Icon in Main übergeben Allgemeine Java-Themen 1
? AWT Translucent JFrame mit repaint Allgemeine Java-Themen 4
S OOP JFrame als Observer eines JPanel Allgemeine Java-Themen 3
X Modalität von JDialog nachträglich in JFrame implementieren? Allgemeine Java-Themen 8
P Ableitungsfehler JFrame Allgemeine Java-Themen 5
A Excel Tabelle in JFrame darstellen Allgemeine Java-Themen 6
G JPanel in JFrame Allgemeine Java-Themen 9
S JDialog Daten ins JFrame übergeben Allgemeine Java-Themen 5
E Grafiken auf dem JFrame Allgemeine Java-Themen 5
D Bilder in JFrame anzeigen Allgemeine Java-Themen 5
X Kann JLabel in JFrame nicht aktualisieren Allgemeine Java-Themen 3
J pack() lässt JFrame grau Allgemeine Java-Themen 3
J JFrame / PopUp-Menü bearbeiten Allgemeine Java-Themen 2
M JFrame absolut im Vordergrund Allgemeine Java-Themen 2
D JFrame nur in eine Richtung resizen Allgemeine Java-Themen 6
X JFrame sichtbar bei einem gesperrten Computer Allgemeine Java-Themen 11
U Zeichnen mit JFrame. Allgemeine Java-Themen 5
P JPanel - JFrame Allgemeine Java-Themen 6
N JFrame Icon selbst erzeugen Allgemeine Java-Themen 2
T applet und JFrame Allgemeine Java-Themen 12
T abspeichern und laden von objekten in JFrame Allgemeine Java-Themen 2
Developer_X JFrame verkleinern Allgemeine Java-Themen 20
D Problem mit Tooltips und JFrame (Tooltips sind zu kurz!) Allgemeine Java-Themen 4
Z Uralt-Applet in JFrame Anwendung konvertieren Allgemeine Java-Themen 12
F JFrame zeigt Hintergrund und nicht den Inhalt Allgemeine Java-Themen 12
G Bilder einer Webcam im JFrame anzeigen Allgemeine Java-Themen 5
D Von Thread auf JFrame zugreiffen? Allgemeine Java-Themen 5
M JFrame anpassen Allgemeine Java-Themen 4
M Neues JPanel in JFrame einbinden Allgemeine Java-Themen 6
W Das schließen des JFrame abfangen, wiei? Allgemeine Java-Themen 6
M PDF auf JFrame Allgemeine Java-Themen 10
D JFrame vergrößert nicht auf die gewünschte Größe Allgemeine Java-Themen 2
MQue JFrame nur einmal öffnen Allgemeine Java-Themen 3
MQue Fokus von Komponenten/JFrame Allgemeine Java-Themen 3
MQue JFrame bleibt hängen Allgemeine Java-Themen 3
P Image auf JPanel auf JFrame Allgemeine Java-Themen 3
P JPanel in JFrame Allgemeine Java-Themen 2
T Sound in JFrame: Ich krichs nich hin =( Allgemeine Java-Themen 7
E 2 Images auf einem JFrame Allgemeine Java-Themen 8
RawBit Component in der Titelleiste vom JFrame? Allgemeine Java-Themen 18
G Word-Dokument in einem JFrame Allgemeine Java-Themen 2
T Servlet und JFrame Allgemeine Java-Themen 2
S JFrame mit Wartezeit Allgemeine Java-Themen 12
thE_29 Java App/JFrame Bildschirm "sperren" Allgemeine Java-Themen 10
U JFrame, JOptionPane - vor dem Schließen Benutzer fragen Allgemeine Java-Themen 10
T JFrame in Statusleiste minimieren Allgemeine Java-Themen 4
D JFrame nicht per Hand schreiben Allgemeine Java-Themen 5
G wie Klasse in JFrame "einfügen" Allgemeine Java-Themen 12
G JFrame nimmt mein Image nicht Allgemeine Java-Themen 2
S visible prob mit JFrame und JDialog Allgemeine Java-Themen 4
A JFrame-Liste Allgemeine Java-Themen 4
J JFrame Problem beim schließen Allgemeine Java-Themen 2
R java.awt.Component.setCursor() fehlt bei der JFrame doc Allgemeine Java-Themen 2
J Fenstergröße eines anderen Programmes auslesen Allgemeine Java-Themen 9
H Fenstergröße verändern Allgemeine Java-Themen 10
E Listener für Änderung der Fenstergröße Allgemeine Java-Themen 3
D Methoden Methoden anpassen und fehlende Funktionen hinzufügen Allgemeine Java-Themen 475
DjangoDieMango Swing MaskFormatter Maske Variabel anpassen Allgemeine Java-Themen 2
B Altes Applet anpassen Allgemeine Java-Themen 8
T jfreechart Linien/Punkttyp anpassen Allgemeine Java-Themen 1
B Umgebungsvariable Anpassen der Umgebungsvariablen nach Java-Update ? Allgemeine Java-Themen 14
M Array "Größe" anpassen Allgemeine Java-Themen 2
L Methoden methoden an generischen klassentyp anpassen Allgemeine Java-Themen 5
X Windows-Environment-Variable per jRegistryKey anpassen Allgemeine Java-Themen 6
S Arraygröße anpassen Allgemeine Java-Themen 6
F JFreeChart Größe anpassen Allgemeine Java-Themen 8
L Datentypen Datenmodell anpassen? Allgemeine Java-Themen 7
K JFreeChart - Einträge in DomainAxis anpassen Allgemeine Java-Themen 2
N Jlabel automatisch anpassen Allgemeine Java-Themen 3
H JDateChooser anpassen Allgemeine Java-Themen 4
F KeyEvents anpassen? Allgemeine Java-Themen 4
J Itext , Spaltenbreite automatisch anpassen ? Allgemeine Java-Themen 4
S spielgeschwindigkeit an rechenzeit anpassen Allgemeine Java-Themen 31
N JTable & JScrollPane - Wie den Header anpassen? Allgemeine Java-Themen 4
M Bildgröße anpassen Allgemeine Java-Themen 3
R Größe der JRE anpassen Allgemeine Java-Themen 18
M JLabel an Textlänge anpassen / Textlänge in pixel Allgemeine Java-Themen 3

Ähnliche Java Themen


Oben