Java 更改JSpinner大小(宽度)

Java 更改JSpinner大小(宽度),java,swing,jspinner,flowlayout,Java,Swing,Jspinner,Flowlayout,我的问题是:JSpinner太瘦了,我只能在最后一点看到字符串上的字符 例如:“你好”我只看到“o” 我在JFrame的BorderLayout.SOUTH中有一个JPanel JPanel的布局管理器是默认的,它是一个FlowLayout管理器,如果我的信息有误,请纠正我 在前面提到的JPanel中还有多个组件 我试过了 RandomSpinner = new JSpinner(tempModel); int w = RandomSpinner.getWidth(); int h = Ra

我的问题是:JSpinner太瘦了,我只能在最后一点看到字符串上的字符

例如:“你好”我只看到“o”

我在JFrame的BorderLayout.SOUTH中有一个JPanel

JPanel的布局管理器是默认的,它是一个FlowLayout管理器,如果我的信息有误,请纠正我

在前面提到的JPanel中还有多个组件

我试过了

RandomSpinner = new JSpinner(tempModel);
int w = RandomSpinner.getWidth();   int h = RandomSpinner.getHeight();
RandomSpinner.setSize(new Dimension(w * 2, h));
add(RandomSpinner);
这对JSpinner的宽度没有影响

我应该如何更改JSpinner的宽度,还是这是一个FlowLayout问题


谢谢

您可以通过以下三个步骤完成这一切:

  • 获取微调器的编辑器组件:

    组件mySpinnerEditor=mySpinner.getEditor()

  • 获取微调器编辑器的文本字段:

    JFormattedTextField jftf=((JSpinner.DefaultEditor)mySpinnerEditor.getTextField()

  • 将默认大小设置为文本字段:

    jftf.setColumns(您所需的列数)


  • 设置首选和最小尺寸:

    RandomSpinner = new JSpinner(tempModel);
    int w = RandomSpinner.getWidth();   int h = RandomSpinner.getHeight();
    Dimension d = new Dimension(w * 2, h);
    RandomSpinner.setPreferredSize(d);
    RandomSpinner.setMinimumSize(d);
    

    如果您的框架中有足够的空间,设置首选大小应该足够。

    请共享一个最小的可测试代码,以便快速响应。
    FlowLayout
    应该使用微调器的首选大小。可能。@user3218114:感谢您仔细检查此问题;公认的答案承认了潜在的问题。。