JFrame resizable mit Minimalgröße

Status
Nicht offen für weitere Antworten.

rapthor

Bekanntes Mitglied
Hallo,

kann man, wie bei Windows-Programmierung üblich, auch festsetzen, dass ein JFrame zwar größenveränderbar ist, aber eine bestimmte x-y-Größe mindestens einhält?

Außerdem habe ich noch ein Problem beim Größenändern: der Inhalt wird erst beim Loslassen neu gezeichnet. Gibt es soetwas wie ein "OnResize() { revalidate(); }"?
 
1.)
getMinimumSize, getPreferredSize und getMaximumSize

wenn du die überschreibst sollte es gehen.

2.)
dazu kann ich dir nichst sagen.
 
2.) Is das net eine Einstellung, die man im Windows verändern kann, und nicht eine für/von einzelne(n) Fenster(n)?
 
Illuvatar hat gesagt.:
2.) Is das net eine Einstellung, die man im Windows verändern kann, und nicht eine für/von einzelne(n) Fenster(n)?

Was du meinst ist vielleicht das "Zeige Inhalt beim Verschieben", was im Betriebssystem auch ermöglicht den Inhalt zu sehen, während man die Größe verändert. Aber ich bin doch stark der Meinung, dass so etwas auch für ein JAVA-Resize-Ereignis gehen müsste.
 
Gosi hat gesagt.:
1.)
getMinimumSize, getPreferredSize und getMaximumSize

wenn du die überschreibst sollte es gehen.

Hab die überschrieben, aber es tut sich nichts. Ich kann das Fenster immernoch beliebig klein ziehen:

Code:
	@Override
	public Dimension getMaximumSize() {
		// TODO Auto-generated method stub
		return new Dimension(200,200);
	}

	@Override
	public Dimension getMinimumSize() {
		// TODO Auto-generated method stub
		return new Dimension(200,200);
	}

	@Override
	public Dimension getPreferredSize() {
		// TODO Auto-generated method stub
		return new Dimension(200,200);
	}

Roar hat gesagt.:
2: Toolkit#setDynamicLayout()

Danke, das funktioniert.
 
Das Fenster bleibt damit bei einer Mindestgröße, aber erst, wenn man die Maus wieder loslässt. D.H. während man die Größe verändert, kann man es auch zusammenschrumpfen lassen, ohne dass es bei der Mindetgröße blockiert.

Code:
		addComponentListener(new java.awt.event.ComponentAdapter() {
			  public void componentResized(ComponentEvent e) {
			    JFrame tmp = (JFrame)e.getSource();
			    if (tmp.getWidth()<500 || tmp.getHeight()<350) {
			      tmp.setSize(500, 350);
			    }
			  }
			});
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben