Java 带长(int64)的JSpinner
所以我使用的是JSpinner,但我确实需要JSpinner来支持long(64位整数)。我想允许用户在JSpinner中输入多达50万亿的数据,因此必须输入很长的数据。 任何和所有的帮助都会很好。我一直在寻找答案,但似乎找不到答案。我试着声明JSpinner,说Java 带长(int64)的JSpinner,java,swing,Java,Swing,所以我使用的是JSpinner,但我确实需要JSpinner来支持long(64位整数)。我想允许用户在JSpinner中输入多达50万亿的数据,因此必须输入很长的数据。 任何和所有的帮助都会很好。我一直在寻找答案,但似乎找不到答案。我试着声明JSpinner,说JSpinner,但是没有用 我的代码如下所示:JSpinner TheSpinner=newjspinner(newspinnernumbermodel(100000000050050000000001000))关于我的评论 如果你这
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
,但如果使用primitveLong
,Java将调用双构造函数,因此返回值为double
。如果您使用包装器Long
,一切正常,Java将选择“泛型”构造函数。非常感谢。“我很快就会测试出来的。”斯宾塞·格兰杜克:很高兴它起了作用。请务必查看API,了解我用来解决此问题的所有信息。祝你好运。我要说的是,这个解决方案确实像@SpencerGrantDak所希望的那样有效。然而,它实际上使用的是双精度而不是长精度。如果查看API,您可以选择double、int或Number。在本例中,long被转换为double。需要注意的重要一点是,当您调用.getValue()
时,结果将是一个双精度值,而不是一个长的值。双打可能还有其他问题,比如比较。这个解决方案对我也适用,但要注意它的局限性。@Luke:的确,你是对的。非常感谢您的更正!你可以更新你的答案。如前所述,SpinnerNumberModel
确实支持Long
,但如果使用primitveLong
,Java将调用双构造函数,因此返回值为double
。如果您使用包装器Long
,一切正常,Java将选择“泛型”构造函数。