Java_Neuling Geschrieben 23. Oktober 2007 Geschrieben 23. Oktober 2007 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 Zitieren
geloescht_Newlukai Geschrieben 23. Oktober 2007 Geschrieben 23. Oktober 2007 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. Zitieren
flashpixx Geschrieben 23. Oktober 2007 Geschrieben 23. Oktober 2007 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 Zitieren
Java_Neuling Geschrieben 23. Oktober 2007 Autor Geschrieben 23. Oktober 2007 Also wenn ich flashpixx richtig verstanden hab dann sollte es ja bei mir eigentlich gehen :confused: Ich benutze das null-layoutContainer c = frame.getContentPane(); c.setLayout( null ); und danach setze ich meine JButtons, JLabels und JTextFieldstf_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... Zitieren
flashpixx Geschrieben 23. Oktober 2007 Geschrieben 23. Oktober 2007 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 Zitieren
Java_Neuling Geschrieben 24. Oktober 2007 Autor Geschrieben 24. Oktober 2007 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 Zitieren
JFlash Geschrieben 24. Oktober 2007 Geschrieben 24. Oktober 2007 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. frame.add(new JButton("bla")); frame.getToolkit().setDynamicLayout(false); Zitieren
Java_Neuling Geschrieben 24. Oktober 2007 Autor Geschrieben 24. Oktober 2007 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.... Zitieren
flashpixx Geschrieben 24. Oktober 2007 Geschrieben 24. Oktober 2007 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 Zitieren
geloescht_Newlukai Geschrieben 25. Oktober 2007 Geschrieben 25. Oktober 2007 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? Zitieren
Empfohlene Beiträge
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.