2009-08-06 20 views
0

我正在做一些圖形處理,HTML是樣式顯示內容的完美選擇。我試圖重用swing的內置html支持,如果我將高度傳遞給View.paint的代碼進行硬編碼,它會很好地工作,但我無法弄清楚如何確定渲染內容的邊界在運行時會有多高給定一個特定的寬度。Swing的BasicHTML.createHTMLView度量使用

Graphics2D g = ... 
JLabel label = new JLabel("blah blah blah..."); 

View view = BasicHTML.createView(label, label.getText()); 
int minHeight = .... // Calculation magic goes here 
Rectangle htmlSize = new Rectangle(0, 0, 50, minHeight); 
g.setClip(htmlSize); 
view.paint(g, htmlSize); 

如果我用getPreferredSize()問JLabel方向,它根本不考慮包裝。如果我嘗試使用JEditorPane,它會返回一個更大但固定大小的矩形。

謝謝。

回答

1

直到知道寬度後才能計算高度。當Swing組件,我認爲對付你需要做的是這樣的:

component.setSize(100, 1); 
Dimension size = component.getPreferredSize(); 

或者,也許你可以使用目前的概念在此posting