2016-04-14 248 views
0

因此,如果JSpinner的值非常非常大(即大量字符),它将扩大自己的大小,并炸开它所在的面板的大小。我试图防止这种情况发生,并确保组件不会变得太大。限制JSpinner大小

由于面板根据窗口大小和其中所有组件的大小动态调整大小,因此无法提前知道其首选大小。然而,JSpinner是唯一一个似乎像这样炸毁的人。

JSpinner必须在这种情况下使用,不能在这里抛弃它。我试图设置底层编辑器文本字段的列数,不起作用。

我需要能够让JSpinner填充封闭面板的宽度,并且不会超过此宽度。有什么我可以选择在这里做的吗?

谢谢。

+0

可能是布局管理器的问题。你在用什么? – Thomas

回答

0

覆盖微调器的getPreferredSize()方法。

我会先调用super.getPreferredSize()来获取默认值。然后,您可以将宽度覆盖为一些合理的值。

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

你可以做基础上,spineer的FontMetrics的宽度,这样,如果该字体发生了改变,你的宽度将与字体重新调整。