2009-07-23 2 views
1

Graphicsオブジェクトに適用されたTransformsを使用して画面を描画する必要があるJLabelがあります。JLabelはどれくらい小さいのですか?

私はJLabelをテキストの内容によっては省略できないように小さくしようとしています。私がやろうとしている何

は次のとおりです。

setBounds(0, 0, label.getMinimumSize().width, label.getMinimumSize().height); 

時には、これは今、省略記号、時には得られます。これは実際に適用される変換(通常はアニメーションの任意のスケーリング)に依存します。

「最小サイズ」とは何かを明らかにしていないのですが、四捨五入などの丸め誤差がありますか?

正しい方向に指摘してください。

答えて

3

label.getMinimumSize()はUIデリゲートによって計算され、その内容ではなくレイアウトとそのクロムに関連しています。たぶん、テキストに基づいてサイズを決定する必要がありますか?

のような何か...

JLabel label = new JLabel("xx"); 
int minWidth = ((int) (label.getFontMetrics(label.getFont()).getStringBounds(label.getText(),label.getGraphics()).getWidth()) + label.getInsets().left + label.getInsets().right); 

と高さについても同様。

関連する問題