2009-07-23 48 views
1

我有一個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); 

,併爲高度相似。