私のパネル上の文字列の正確な高さをピクセルで取得したいと考えています。だから私は、文字列を描画し、その周りに長方形を描くプログラムを書いた。 フォントメトリックスを使用してFontMetricsが正しくない高さを返します
は、私は私に外接矩形を取得するためにgetStringBounds方法を使用していました。それは間違って見えるしかし
:
私は完全に私のテキストを囲む長方形を期待していたが、そこにスペースが最上部にある(そして左のスペースのほんの少し、右)。なぜ私にこの結果を与えているのですか?ここで
は私のコードです:上部の
public class Test extends JPanel {
@Override
protected void paintComponent(Graphics g) {
Font font = new Font("Arial", Font.PLAIN, 60);
g.setFont(font);
FontMetrics fm = this.getFontMetrics(font);
String str = "100dhgt";
Rectangle2D rect = fm.getStringBounds(str, g);
int x = 5;
int y = 100;
g.drawRect(x, y - (int)rect.getHeight(), (int)rect.getWidth(), (int)rect.getHeight());
g.drawString(str, x, y);
}
public static void main(String[] args) {
JFrame f = new JFrame();
Test test = new Test();
f.add(test);
f.setVisible(true);
f.setSize(400, 400);
}
}
また、TextLayoutを検討してみてください(http://stackoverflow.com/a/16014525/)。 230513)。 – trashgod
境界線は、紙の上にテキストを書くようなものですか?つまり学校のように、あなたは行の下にgとyを書く必要がありました。 –