因此,如果JSpinner的值非常非常大(即很多字符),它会扩展自己的大小,并炸掉它所在面板的大小。我试过为了防止这种情况,并确保组件不会太大。
由于面板的大小根据窗口的大小和窗口中所有组件的大小动态调整,因此无法提前知道其首选大小。然而,JSpinner是唯一一个似乎爆炸的人。
在这种情况下必须使用JSpinner,不能在这里抛弃它。我已经尝试在基础编辑器的文本字段中设置列数,但是没有用。
我需要能够让JSpinner填充封闭面板的宽度,并且不要大于此值。有什么我可以选择在这里做的吗?
感谢。
答案 0 :(得分:1)
覆盖微调器的getPreferredSize()
方法。
我首先调用super.getPreferredSize()来获取默认值。然后你可以将宽度覆盖到一些合理的值。
Dimension d = super.getPreferredSize();
d.width = ???
return d;
您可以根据脊柱的FontMetrics
来设置宽度,这样如果字体发生变化,您的宽度将会使用字体重新缩放。