0

これはおそらく非常に簡単な質問ですが、何を探しているのかよくわからないため、解決策を見つけることができませんでした...

私はhtml文字列を入れたJLabelを使用しています。私の文字列はJsoupによって取得されます次に、文字列に合うようにJLabelのサイズを変更したいと思います。そのために、私は正常に動作する FontMetrics.stringWidth メソッドを使用しています...「è」、「ç」、「ô」などの特殊文字がある場合を除きます。この場合、文字は次のようになります。ô、またはのようなésth であり、stringWidth はそれを考慮に入れます。

たとえば、 FontMetrics.stringWidth(HTMLFormating("é")) は、はるかに長い (" ") の stringWidth を提供します...たとえば、é" chec" の長さを測定すると、é「echec」と同じ結果

解決策は何ですか?HTML文字列を「通常の」文字列に戻す方法はありますか? または、別の方法を使用する必要がありますか?

ご協力いただきありがとうございます !

4

2 に答える 2

1

文字列が追加されたら、ラベルの推奨サイズを確認してください。

于 2013-12-13T09:02:44.100 に答える
0

おそらく、JLabel のサイズ変更に使用しているコードを投稿する必要があります。おそらくそれがあなたの問題を引き起こしているので、私はその問題に対処します。

public void resize(String newText){
    label.setText(newText);
    label.setFont (font);
    int labelW = (int) Math.ceil (label.getPreferredSize().getWidth());
    int maxWidth = (int) Math.floor (panel.getSize().getWidth());
    if (labelW <= maxWidth)
        return;
    for (int k = 1 ; labelW > maxWidth ; k++) {
        Font labelFont = font.deriveFont (font.getSize() - k*1.0f);
        label.setFont (labelFont);
        labelW = (int) Math.ceil (label.getPreferredSize().getWidth());
    }
}
于 2013-12-10T13:06:27.337 に答える