Swing JFrame Größe zur Laufzeit ändern

SimonRap

Neues Mitglied
Guten Abend zusammen,

-----

ich bin neu hier (wuhuu) und auf in Java noch nicht sehr vertraut (und ich hoffe, ich hab das richtige Forum erwischt 😉 )...
Ich bin momentan noch Schüler und habe meine Programmierung angefangen mit Delphi, weswegen ich jetzt sehr verwöhnt bin, was einfache grafische Oberflächenkonfiguration angeht). Nun sind wir bei uns auf Java umgestiegen und musste feststellen, das Java -was grafische Oberflächen angeht- , SOOO viel mehr Code braucht, als ich davor benötigte^^

-----

Zu meine Problem:
Ich habe in meinem ersten (für meinen Kenntnisstand in Java / für meine Verhältnisse) großen Java-Projekt ein JFrame, dessen Größe ich zur Laufzeit ändern möchte.
Erstellen tu ich den Frame so:
(und bitte, ich weiß das ich eine seltsame Formatierung / Code-style habe... das werde ich mir nicht mehr abgewöhnen können)
Java:
public class FlugWindow extends JFrame //aufs nötigste, um Verständnis reduziert.
{
	//...
	public FlugWindow()
	{
		this.setResizable(false);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.getContentPane().setLayout(null);
		this.setBounds(0,0,800,600);
		this.setLocationRelativeTo(null);
		//setVisible() wird in einer übergeordneten Klasse aufgerufen
	}
	//...
Jetzt möchte ich in der Klasse eine Funktion haben, um die Fenstergröße zu verändern:
Java:
public class FlugWindow extends JFrame //aufs nötigste, um Verständnis reduziert.
{
	//...
	private void ChangeSize(int x, int y)
	{
		//TODO methode ChangeSize: passender, sinnvoller Code :(
	}
	//...
Hat jemand eine Idee, wie man das realisieren könnte? (in solchen Punkten finde ich Pascal / Delphi besser 😀 )
setBounds will nicht klappen, mit so einer bunten Mischung wie,
Java:
		this.setSize(LWIDTH, tmpHeight);
		this.setPreferredSize(new Dimension(LWIDTH, tmpHeight));
		this.setMaximumSize(new Dimension(LWIDTH, tmpHeight));
		this.setMinimumSize(new Dimension(LWIDTH, tmpHeight));
gehts so... naja (manchmal ja, manchmal aber auch nicht..)
Kann mir jemand weiterhelfen?

Vielen, vielen Danke in Vorraus,
Simon
 
Zuletzt bearbeitet:
Mal ein Beispiel:
Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class ResizeFrame {

	public static void main(String[] args) {
		final JFrame fr = new JFrame();
		fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		fr.setSize(100, 100);
		JButton btn = new JButton();
		btn.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				fr.setSize((int)(Math.random()*100+100), (int)(Math.random()*100+100));
				fr.validate();
				fr.setLocationRelativeTo(null);
			}
		});
		fr.add(btn);
		fr.setLocationRelativeTo(null);
		fr.setVisible(true);
	}
	
}

Gruß Vanny
 
Hey vanny,
danke für die schnelle Antwort 😀

so einfach geht das?
Warum bin ich darauf nicht gekommen?!
Wie auch immer... danke für die Hilfe, werds gleich mal einbauen 😀

Grüße,
Simon


-edit-
Hab's eingebaut.... klappt einwandfrei...
vielen vielen Dank für die superschnelle Antwort :toll:
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben