Zum Inhalt springen

Fenster dynamisch anpassen


Java_Neuling

Empfohlene Beiträge

Morgen!

ich habe gerade gelesen das man den Inhalt des Fensters dynamisch zur Fenstergröße anpassen kann. Ich habs auch gleich mit ausprobiert

setDynamicLayout(boolean dynamic)

aber es hat leider nicht geklappt :( muss ich da evtl was beachten? Könnt ihr mir weiter helfen :confused:

Danke im voraus!

MfG

Java_Neuling

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das wär' geil. Wenn's so trivial wäre ... schön.

Meines Wissens nach mußt Du einen LayoutManager angeben und ihn, falls er's benötigt, mit Daten zu den Komponenten füttern. Aber Sun hat dazu ein kleines Tutorial geschrieben. Es gibt noch weitere Manager von Drittanbietern, z. B. bei JGoodies.com.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also wenn ich flashpixx richtig verstanden hab dann sollte es ja bei mir eigentlich gehen :confused:

Ich benutze das null-layout

Container c = frame.getContentPane();

c.setLayout( null );
und danach setze ich meine JButtons, JLabels und JTextFields
tf_test.setBounds(10, 10, 50, 15)
und am ende dann halt noch
c.add(tf_test);

eigentlich sollte es ja dann gehen wenn ich es richtig verstanden hab (geht nicht :() oder :confused:

Tut mir leid falls ich mich zu blöd anstelle...

Link zu diesem Kommentar
Auf anderen Seiten teilen


LayoutManager myLayout = beliebigerLayoutManager();

myLayout.add( myLabel, my Button) usw.

fame.add( myLayout );

Erst mal Danke für die Posts! Ich habs jetzt hoffentlich so gemacht wie du es gemeint hast und zwar

LayoutManager myLayout = null;

myLayout.add( lb_eins, tf_eins);

frame.add( myLayout );

dann bekomm ich aber folgende Fehlermeldungen:

- The method add(JLabel, usw.) is undefined for the type LayoutMangager

- The method add(Component) in the type Container is not appleciable for the arguments (Layoutmanager)

mache ich da was falsch :confused:

MfG

Java_Neuling

Link zu diesem Kommentar
Auf anderen Seiten teilen

DynamicLayout is standartmäßig true, was bedeutet,

dass der Inhalt des Container's beim Skalieren des Fensters dynamisch layoutet wird.

Setz DynamicLayout mal auf false und skalier das Fenster,

dann siehste, dass der Button zum Beispiel, erst nach dem Beenden der Skalierung angepasst wird. :D


frame.add(new JButton("bla"));

frame.getToolkit().setDynamicLayout(false);

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also mein Problem ist das mein Buttons, Labels, etc. nicht verändert werden wenn ich die Fenstergröße ändere

ich gehe so vor

Container c = frame.getContentPane();

c.setLayout( null );

tf_test.setBounds(10, 10, 50, 15);

c.add(tf_test);

was mach ich falsch?

Darum hab ich auch kein Unterschied bei der setDynamic gesehen....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

nimm doch bitte mal einen Windowmanager z.B. Borderlayout oder Gridlayout.

Füge Die einzelnen Komponenten in die Panels des Layoutmanager eins und dann den Layoutmanager in das JFrame.

Hier mal ein Auszug:


public GUI(Debug poDebug) {
super();
this.goDebug = poDebug;
this.goVisual = new Visual(this.goDebug);
this.goEvent = new GUIEventListener(this);

this.getContentPane().add( this.MainUI() );
this.setContentPane( this.getContentPane() );

//Menu und Hauptfenster setzen
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Geneticmind");
this.setJMenuBar( this.MainMenu() );

this.setSize(700, 500);
this.setResizable(false);
Dimension loScreen = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation( loScreen.width/2 - 350,
loScreen.height/2 - 250);

this.InfoDialog();
}

private Container MainUI() {

Container loUp = new Container();
loUp.setLayout( new FlowLayout() );
loUp.add( this.getGenColorPanel() );
this.goProgressbar = new JProgressBar();
loUp.add( this.goProgressbar );


Container loView = new Container();
loView.setLayout( new GridLayout(2,0) );
loView.add(loUp);

this.goJPanelIterateGen = new JPanel();
this.goJPanelIterateGen.setLayout( new GridLayout(0,1) );
JScrollPane loScroll = new JScrollPane();
loScroll.getViewport().add( this.goJPanelIterateGen, null);
loView.add( loScroll );

//Haupt UI
Container lo = new Container();
lo.setLayout( new GridLayout(0,2) );

//Daten einfügen
lo.add( this.getInterface() );
lo.add( loView );
return lo;
}
[/PHP]

HTH Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...