Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

Hallo,

das ist doch eigentlich recht einfach, einfach in das JFrame ein Borader / Grid o.ä. Layout legen und da die Fensterelemente einsetzen, bei den Standard-Layoutmanagern funktioniert das dann automatisch.

Falls es nicht geht, evtl mal den Quellcode Deiner Windowklasse posten

HTH Phil

Geschrieben

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...

Geschrieben

Hallo,

"Container c = frame.getContentPane();"

nein damit "haust" Du Deine Objekte direkt in das JFrame, also:


LayoutManager myLayout = beliebigerLayoutManager();

myLayout.add( myLabel, my Button) usw.

fame.add( myLayout );

Bitte aber noch mal genau nachschauen

HTH Phil

Geschrieben

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

Geschrieben

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);

Geschrieben

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....

Geschrieben

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

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...