更改JSpinner尺寸(宽度)

时间:2014-08-07 17:47:49

标签: java swing jspinner flowlayout

我的问题: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问题?

谢谢

2 个答案:

答案 0 :(得分:9)

您可以通过以下三个步骤完成所有操作:

  1. 获取微调器的编辑器组件:

    Component mySpinnerEditor = mySpinner.getEditor();

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

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

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

    jftf.setColumns(your_desired_number_of_columns);

答案 1 :(得分:0)

设置首选和最小尺寸:

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);

如果框架中有足够的空间,设置首选尺寸就足够了。