Ich habe einen HMTL-Editor bei dem beim Start Arial Größe 12 ausgewählt ist.
Mich würde interessieren, wie das Programm über die Methode getFont() / getFontMetrics() (Siehe Zeile 9-10) ausgerechnet diese Fakten bezieht?
Mich würde interessieren, wie das Programm über die Methode getFont() / getFontMetrics() (Siehe Zeile 9-10) ausgerechnet diese Fakten bezieht?
Code:
// set the scrolling panel, based on text metrics
int widthInChars = 60;
int heightInChars = 30;
String text = "";
for (int i = 0; i < widthInChars; ++i) {
text += "m"; // m is typically the widest letter
}
Graphics g = textPane.getGraphics();
Font font = textPane.getFont();
FontMetrics metrics = g.getFontMetrics(font);
Rectangle2D bounds = metrics.getStringBounds(text, g);
Insets insets1 = scrollPane.getInsets();
Insets insets2 = textPane.getInsets();
int padx = insets1.left + insets1.right + insets2.left + insets2.right;
int pady = insets1.top + insets1.bottom + insets2.top + insets2.bottom;
Dimension preferred =
new Dimension(
(int)(bounds.getWidth() + padx),
(int)((heightInChars * bounds.getHeight()) + pady));
scrollPane.setPreferredSize(preferred);
scrollPane.invalidate();