2016-04-14 238 views
0

因此,如果JSpinner的值非常非常大(即大量字符),它將擴大自己的大小,並炸開它所在的面板的大小。我試圖防止這種情況發生,並確保組件不會變得太大。限制JSpinner大小

由於面板根據窗口大小和其中所有組件的大小動態調整大小,因此無法提前知道其首選大小。然而,JSpinner是唯一一個似乎像這樣炸燬的人。

JSpinner必須在這種情況下使用,不能在這裏拋棄它。我試圖設置底層編輯器文本字段的列數,不起作用。

我需要能夠讓JSpinner填充封閉面板的寬度,並且不會超過此寬度。有什麼我可以選擇在這裏做的嗎?

謝謝。

+0

可能是佈局管理器的問題。你在用什麼? – Thomas

回答

0

覆蓋微調器的getPreferredSize()方法。

我會先調用super.getPreferredSize()來獲取默認值。然後,您可以將寬度覆蓋爲一些合理的值。

Dimension d = super.getPreferredSize(); 
d.width = ??? 
return d; 

你可以做基礎上,spineer的FontMetrics的寬度,這樣,如果該字體發生了改變,你的寬度將與字體重新調整。