2011-05-03 78 views
0

我設置的JTextPane(200像素)的最大寬度和使用方法:如何計算的JTextPane真實的高度和長度

if(textPane.getPreferredSize().width> maxWidth) { 
textPane.setSize(maxWidth, Integer.MAX_VALUE); 
     View v = textPane.getUI().getRootView(textPane); 
     v.setSize(maxWidth, Integer.MAX_VALUE); 
     int preferredHeight = (int) v.getPreferredSpan(View.Y_AXIS); 
     textPane.setPreferredSize(new Dimension(maxWidth, preferredHeight)); 
} 

但高度計算不是「真正」的高度,這是比需要更高一點,寬度也是比所需寬度更寬(約25像素),如何在限制最大寬度時計算真正需要的高度?

+0

,就是要在文本編輯兩種或可選擇(後者用於複製等)? – 2011-05-03 09:59:11

+1

爲什麼?因爲,不,不,從長遠來看,不是最有用的建議。你不需要特別的要求。 – kleopatra 2011-05-03 15:19:02

回答

2

setPreferredSize(),setMaximumSize等。行爲取決於組件中設置的實際LayoutManager。

+0

組件中的layoutManger是BoxLayout(Y_AXIS),計算的高度不是「真正的」高度,所以如果使用它來設置setMaximumSize等等,則工作不正常。 – user613853 2011-05-04 00:30:22

+0

如何在BoxLayout中處理和調整組件大小取決於您如何使用膠水和固定區域。嘗試發佈更多的代碼,從這幾行我不能告訴你更多。也許@Andrew Thompson有一些建議。 – Heisenbug 2011-05-04 10:17:40

+0

在OP回答我的問題之前,我無意考慮這一點。 @OP:請注意,這是一個論壇,而不是服務檯。 – 2011-05-04 10:29:29