您可以转到实际上是一个
JFormattedTextFieldby 的文本字段。
- 首先调用
getEditor()
您的JSpinner以获取微调器的编辑器 - 将返回的对象投射到
JSpinner.DefaultEditor
- 然后调用
getTextField()
此。然后,可以根据需要将其设置为preferredSize。
编辑:如垃圾桶所指出的那样,使用正确的布局至关重要,并且确保使用的布局最佳,这可能是解决此问题的最佳方法。
编辑2: 上面的说法是错误的,因为设置文本字段的首选大小不会执行任何操作。但是,您可以设置编辑器本身的首选大小,这样就可以了。例如,
import java.awt.Dimension;import javax.swing.*;public class SpinnerBigTextField { private static void createAndShowGui() { JSpinner spinner = new JSpinner(new SpinnerNumberModel(0.0, 0.0, 999.0, 0.5)); JPanel panel = new JPanel(); panel.setPreferredSize(new Dimension(300, 100)); panel.add(spinner); JComponent field = ((JSpinner.DefaultEditor) spinner.getEditor()); Dimension prefSize = field.getPreferredSize(); prefSize = new Dimension(200, prefSize.height); field.setPreferredSize(prefSize); Jframe frame = new Jframe("SpinnerBigTextField"); frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE); frame.getContentPane().add(panel); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGui(); } }); }}


