Morgen,
ich hab folgendes Problem:
Ich erzeuge aus Daten, die von dem Benutzer eingegeben werden, ein pdf Dokument.
Nun ist das Problem, das auch dem Dokument mehrere Spalten nebeneinander liegen.
Dem User soll nun angezeigt werden, wenn sein eingegebener String zu lang ist.
Dazu habe ich mir die Spalten im pdf angeguckt, wie breit die in Pixeln sind und dementsprechend ein JTextField umgeschrieben, dass folgende Funktion besitzt:
Das Problem ist, das mir die Funktion getFontMetrics(textBold).stringWidth(super.getText());
bei 10 "i"s die Länge 40 gibt, aber bei itext hat der String die Länge 44....
In beiden Klassen hab ich java.awt.Font benutzt und die Font ist auch die gleiche
(Arial,BOLD,8)
Woran liegt das?
Oder bin ich die Sache völlig falsch angegangen und es gibt ne viel elegantere Lösung?
ich hab folgendes Problem:
Ich erzeuge aus Daten, die von dem Benutzer eingegeben werden, ein pdf Dokument.
Nun ist das Problem, das auch dem Dokument mehrere Spalten nebeneinander liegen.
Dem User soll nun angezeigt werden, wenn sein eingegebener String zu lang ist.
Dazu habe ich mir die Spalten im pdf angeguckt, wie breit die in Pixeln sind und dementsprechend ein JTextField umgeschrieben, dass folgende Funktion besitzt:
Code:
public void keyReleased(KeyEvent key)
{
int leng = getFontMetrics(textBold).stringWidth(super.getText());
if (leng > maxLength && this.isEditable())
{
this.setForeground(Color.red);
}
else
{
this.setForeground(Color.black);
}
}
}
Das Problem ist, das mir die Funktion getFontMetrics(textBold).stringWidth(super.getText());
bei 10 "i"s die Länge 40 gibt, aber bei itext hat der String die Länge 44....
In beiden Klassen hab ich java.awt.Font benutzt und die Font ist auch die gleiche
(Arial,BOLD,8)
Woran liegt das?
Oder bin ich die Sache völlig falsch angegangen und es gibt ne viel elegantere Lösung?
Zuletzt bearbeitet: