因此,如果JSpinner有一个非常非常大的值(即很多字符),它会扩大自己的大小,并放大它所在的面板的大小。我正在努力防止这种情况发生,并确保组件不会变得太大。
没有办法提前知道它的首选大小,因为面板根据窗口的大小和其中所有组件的大小动态地调整自己的大小。然而,JSpinner似乎是唯一一个像这样爆炸的。
在这种情况下必须使用JSpinner,不能在这里丢弃它。我尝试在底层编辑器的文本字段上设置列数,但不起作用。
我需要能够让JSpinner填充封闭面板的宽度,并且不会超过这个宽度。这里有什么我可以选择做的事情吗?
谢谢。
发布于 2016-04-15 00:16:08
重写微调器的getPreferredSize()方法。
我首先调用super.getPreferredSize()来获取默认值。然后,您可以将宽度覆盖为某个合理的值。
Dimension d = super.getPreferredSize();
d.width = ???
return d;您可以根据spineer的FontMetrics设置宽度,这样,如果字体发生更改,宽度将随字体重新缩放。
https://stackoverflow.com/questions/36628422
复制相似问题