Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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.

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

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

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

Vergiss mein Post ;)


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

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

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

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


LayoutManager myLayout = null;

myLayout.add( lb_eins, tf_eins);

frame.add( myLayout );

mache ich da was falsch :confused:

Ähm. Ja. Wenn myLayout = null ist, was soll dann myLayout.add(lb_eins, tf_eins) machen?

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.