Saban Geschrieben 29. Mai 2008 Geschrieben 29. Mai 2008 Morgen Zusammen! ich hab folgendes Problem und zwar habe ich ein Panel auf dem ich einige JTextFields angeordnet habe diese werden auch angezeigt doch sie sind grad mal so breit das man erkennt das es sie gibt... Wenn ich sage JTextField.setText() also sie gleich beim erstellen befülle sind Sie so breit wie der Text ich würde jedoch gerne die größe vorgeben z. B. 20 x 20 oder so. Ich habe es schon mit tf.setSize(20, 20) probiert klappt aber auch nicht wirklich :confused: Könnt ihr mir da vllt weiterhelfen? MfG Saban Zitieren
kingofbrain Geschrieben 29. Mai 2008 Geschrieben 29. Mai 2008 Servus, Du willst nicht Deinem Textfeld eine bestimmte Größe setzen, sondern Du willst einen Layout Manager verwenden (s. Sun Tutorial). Wenn Du aber dem Textfeld mitteilen willst, wie viele Zeichen Du als Inhalt erwartest (ca.), dann kannst Du dem Konstruktor einen int-Parameter mitgeben, und die preferred size des Felds wird dann entsprechend groß gemacht. Peter Zitieren
Saban Geschrieben 29. Mai 2008 Autor Geschrieben 29. Mai 2008 Hi! Ich habe den Layout Manager schon. Ich benutze das FlowLayout und da kann ich die größe irgendwie nicht festsetzen. Ich sollte dazu sagen das ich sonst immer nur ohne Layout Manager gearbeitet habe und alles mit setBounds() gemacht habe. Kannst du mir vllt sagen wie ich die größen beim Flowlayout festlegen könnte? MfG Saban Zitieren
Dragon8 Geschrieben 29. Mai 2008 Geschrieben 29. Mai 2008 Die LayoutManager sind unterem dazu, dass du genau das nicht machen brauchst. Deswegen hatte dir ja kingofbrain gesagt, du kannst im Kontruktor des JTextfields nen int-Wert angeben, wie viele Zeichen wahrscheinlich in dem Textfeld stehen werden. Anhand dieser Zahl wird dann die Größe des JTextfields angepasst. Wenn du aber ansonsten unbedingt die Größe per Hand anpassen musst, schau dir mal die Methode setPrefferedSize(Dimension) an. Zitieren
kingofbrain Geschrieben 29. Mai 2008 Geschrieben 29. Mai 2008 Servus, zu den Standard Layout Managern von Sun sage ich nichts (bis Version 1.5, 1.6 kenne ich mit GUI noch nicht), da die einfach nur schlecht sind. Wenn Du wirklich gute Layouts machen willst, dann schau Dir das FormLayout von Karsten Lentzsch an (JGoodies :: Java User Interface Design). Das kann, was man wirklich machen will. Peter Zitieren
Kuroi Geschrieben 29. Mai 2008 Geschrieben 29. Mai 2008 Frage: Wieso benutzt du überhaupt das FlowLayout? Das ordnet AFAIK doch nur die Komponenten auf der GUI in einer bestimmten Reihenfolge an, bis kein Platz mehr ist und macht dann in der nächsten "Zeile" weiter. Der einzige Vorteil besteht darin, dass er automatisch die Größe der Komponenten anpasst, sobald man die Größe des Containers verändert. Wenn diese Option für deine GUI allerdings keinen Sinn macht, würde ich eher einen anderen LayoutManager wie bspw. 'n null-Layout benutzen (.setLayout(null)). Oder du benutzt einfach 'nen GUI-Designer einer IDE, der dir die Arbeit erleichtert (NetBeans, bspw.). Zitieren
Saban Geschrieben 29. Mai 2008 Autor Geschrieben 29. Mai 2008 Hi! Also erst mal vielen danke Dragon8 für den Post mit preferredSize genau das was ich gesucht habe. Danke auch kingofbrain ich werde mir das Layout mal anschauen. Und an Kuroi das Flow Layout ist nur für Testzwecke. Ich suche gerade nach dem perfekten Layout Manager für mein vorhaben aber weiß noch nicht welches genau. Eigentlich arbeite ich auch ohne Layout Manager nur dieses mal muss mir das Panel auf dem die Textfelder liegen dynamisch erzeugt werden da bringt mir ein starres Layout nichts. Ich weiß nie genau wie viele Textfelder in eine Reihe müssen. Ich wollte versuchen es über die Panel Größe zu machen und zwar lasse ich mir berechnen wie breit das Panel sein müsste und lass das FlowLayout den Rest erledigen. Naja ist bisschen blöd auszudrücken... Wenn es dich interessiert und du ein Pic von dem haben willst was mir vorschwebt dann kann ich es dir heut abend hochladen. Danke nochmal für eure Hilfe! MfG Saban 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.