Java 带长(int64)的JSpinner

Java 带长(int64)的JSpinner,java,swing,Java,Swing,所以我使用的是JSpinner,但我确实需要JSpinner来支持long(64位整数)。我想允许用户在JSpinner中输入多达50万亿的数据,因此必须输入很长的数据。 任何和所有的帮助都会很好。我一直在寻找答案,但似乎找不到答案。我试着声明JSpinner,说JSpinner,但是没有用 我的代码如下所示:JSpinner TheSpinner=newjspinner(newspinnernumbermodel(100000000050050000000001000))关于我的评论 如果你这

所以我使用的是JSpinner,但我确实需要JSpinner来支持long(64位整数)。我想允许用户在JSpinner中输入多达50万亿的数据,因此必须输入很长的数据。 任何和所有的帮助都会很好。我一直在寻找答案,但似乎找不到答案。我试着声明JSpinner,说
JSpinner
,但是没有用

我的代码如下所示:
JSpinner TheSpinner=newjspinner(newspinnernumbermodel(100000000050050000000001000))

关于我的评论

如果你这样做了,新的JSpinner(新的喷丝头型号(1000000000L,500L,5000000000000L,1000L));我自己也没试过,但会让数字变长

好吧,见鬼,这似乎奏效了:

import javax.swing.JOptionPane;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;

public class SpinnerTest {
   public static void main(String[] args) {
      JSpinner spinner = new JSpinner(new SpinnerNumberModel(1000000000L, 500L,
            50000000000000L, 1000L));

      JOptionPane.showMessageDialog(null, spinner);
   }
}
关于我的评论,

如果你这样做了,新的JSpinner(新的喷丝头型号(1000000000L,500L,5000000000000L,1000L));我自己也没试过,但会让数字变长

好吧,见鬼,这似乎奏效了:

import javax.swing.JOptionPane;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;

public class SpinnerTest {
   public static void main(String[] args) {
      JSpinner spinner = new JSpinner(new SpinnerNumberModel(1000000000L, 500L,
            50000000000000L, 1000L));

      JOptionPane.showMessageDialog(null, spinner);
   }
}

JSpinner支持泛型吗?这对我来说是新的!你试过和模特们玩吗?例如,您可以基于AbstractSpinnerModel创建自己的模型。但是,不要只是试图编造一些永远都不起作用的东西,比如
JSpinner
(或者更合适但仍然错误的
JSpinner
),我没有。这是我第一次使用JSpinner,我对java相当陌生。我可以看看我是否可以玩一点模型。谢谢,我来看看AbstractSpinnerModel。如果你这样做,会怎么样,
newJSpinner(newSpinnerNumberModel(1000000000L,500L,5000000000000L,1000L))我自己没有尝试过,但会使数字变长。JSpinner支持泛型吗?这对我来说是新的!你试过和模特们玩吗?例如,您可以基于AbstractSpinnerModel创建自己的模型。但是,不要只是试图编造一些永远都不起作用的东西,比如
JSpinner
(或者更合适但仍然错误的
JSpinner
),我没有。这是我第一次使用JSpinner,我对java相当陌生。我可以看看我是否可以玩一点模型。谢谢,我来看看AbstractSpinnerModel。如果你这样做,会怎么样,
newJSpinner(newSpinnerNumberModel(1000000000L,500L,5000000000000L,1000L))我自己没有试过,但是会让数字变长。非常感谢。“我很快就会测试出来的。”斯宾塞·格兰杜克:很高兴它起了作用。请务必查看API,了解我用来解决此问题的所有信息。祝你好运。我要说的是,这个解决方案确实像@SpencerGrantDak所希望的那样有效。然而,它实际上使用的是双精度而不是长精度。如果查看API,您可以选择double、int或Number。在本例中,long被转换为double。需要注意的重要一点是,当您调用
.getValue()
时,结果将是一个双精度值,而不是一个长的值。双打可能还有其他问题,比如比较。这个解决方案对我也适用,但要注意它的局限性。@Luke:的确,你是对的。非常感谢您的更正!你可以更新你的答案。如前所述,
SpinnerNumberModel
确实支持
Long
,但如果使用primitve
Long
,Java将调用双构造函数,因此返回值为
double
。如果您使用包装器
Long
,一切正常,Java将选择“泛型”构造函数。非常感谢。“我很快就会测试出来的。”斯宾塞·格兰杜克:很高兴它起了作用。请务必查看API,了解我用来解决此问题的所有信息。祝你好运。我要说的是,这个解决方案确实像@SpencerGrantDak所希望的那样有效。然而,它实际上使用的是双精度而不是长精度。如果查看API,您可以选择double、int或Number。在本例中,long被转换为double。需要注意的重要一点是,当您调用
.getValue()
时,结果将是一个双精度值,而不是一个长的值。双打可能还有其他问题,比如比较。这个解决方案对我也适用,但要注意它的局限性。@Luke:的确,你是对的。非常感谢您的更正!你可以更新你的答案。如前所述,
SpinnerNumberModel
确实支持
Long
,但如果使用primitve
Long
,Java将调用双构造函数,因此返回值为
double
。如果您使用包装器
Long
,一切正常,Java将选择“泛型”构造函数。