微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – JSpinner:增加编辑框的长度

我有一个JSpinner显示从0.0到999.0的十进制值.它似乎工作正常,除了它在编辑器框中显示一个长度为四位数的数字,例如123.4;然后它会切断部分最后一位数,因为它不够长.

所以我的问题是:有谁知道如何增加JSpinner编辑器窗口的长度?

谢谢!

解决方法

您可以访问实际上是jformattedtextfield的文本字段

>首先在JSpinner上调用getEditor()来获取微调器的编辑器
>将返回的对象强制转换为JSpinner.DefaultEditor
>然后在此调用getTextField().然后,如果需要,您可以设置它的preferredSize.

编辑:正如trashgod所述,使用适当的布局是至关重要的,并确保您使用的布局是最好的可能是解决此问题的最佳方法.

编辑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();
         }
      });
   }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐