PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java + JTextField


RMC
2005-11-29, 19:39:03
Wie kann ich das JTextfield der Größe des Textes anpassen, sodass es immer die richtige Länge + vorne und hinten ev. 2 Leerzeichen mehr hat?

Ich kann zwar die Bounds setzen, aber wie bekomme ich die Länge des Textes in Pixel? :ugly:

Oder gibts eine andere Variante?


Danke

Senior Sanchez
2005-11-29, 20:25:20
Wie kann ich das JTextfield der Größe des Textes anpassen, sodass es immer die richtige Länge + vorne und hinten ev. 2 Leerzeichen mehr hat?

Ich kann zwar die Bounds setzen, aber wie bekomme ich die Länge des Textes in Pixel? :ugly:

Oder gibts eine andere Variante?


Danke

Schaue dir mal die Klasse FontMetrics (http://java.sun.com/j2se/1.5.0/docs/api/java/awt/FontMetrics.html) an.

HellHorse
2005-11-29, 22:03:20
Wie kann ich das JTextfield der Größe des Textes anpassen, sodass es immer die richtige Länge + vorne und hinten ev. 2 Leerzeichen mehr hat?
Also dass es breiter wird, wenn man tippt?

Ich kann zwar die Bounds setzen:ugly:

Oder gibts eine andere Variante?
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JTextField.html#setColumns(int)
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/JTextField.html#JTextField(int)

RMC
2005-11-29, 22:08:05
hm ich habs doch mit den FontMetrics gelöst


FontMetrics fm = textfield.getFontMetrics(textfield.getFont());
Rectangle2D rect = fm.getStringBounds(textfield.getText(), textfield.getParentComponent().getGraphics()); //getParentComponent() ist eine eigene Methode

textfield.setBounds(x,y,(int)rect.getWidth()+10, (int)(Math.ceil(rect.getHeight())+6));



Weiß nicht ob es der einfachste Weg ist, allerdings reicht mir das vollkommen.

Danke!