Archiv verlassen und diese Seite im Standarddesign anzeigen : Java + JTextField
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)
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!
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.