0

我正在尝试将 Jtextfield 的类型更改为双精度值,如下所示:

rangespaceField3.setText(bmi.getBMI());

getBMI 方法返回一个双精度值,但出现以下错误:

JTextComponent 不适用于参数(双精度)

4

5 回答 5

3

试试这个:

rangespaceField3.setText(String.valueOf(bmi.getBMI()));

String.valueOf将返回原始数据类型的字符串表示。

于 2012-05-11T19:27:50.650 回答
2

尝试rangespaceField3.setText(Double.toString(bmi.getBMI()));

于 2012-05-11T19:27:55.537 回答
2

我已经实现了基于 JFormattedTextField 的数字字段。

JRealNumberField 和 JLocalizedRealNumberField 是 BigDecimal 的文本字段。

它们还支持最小值和最大值。

也许您发现它们很有用(该库是开源的):

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JRealNumberField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JDoubleField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JFloatField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JLocalizedRealNumberField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JLocalizedDoubleField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JLocalizedFloatField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JWholeNumberField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JByteField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JIntegerField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JLongField.html

http://softsmithy.sourceforge.net/lib/docs/api/org/softsmithy/lib/swing/JShortField.html

教程:

http://softsmithy.sourceforge.net/lib/docs/tutorial/swing/number/index.html

主页:

http://www.softsmithy.org

下载:

http://sourceforge.net/projects/softsmithy/files/softsmithy/

马文:

<dependency>  
    <groupid>org.softsmithy.lib</groupid>  
    <artifactid>lib-core</artifactid>  
    <version>0.1</version>  
</dependency>  
于 2012-05-11T19:36:12.267 回答
1

如果您只想将双精度的字符串表示形式放入文本字​​段,那么您可以使用 String 类中的 valueOf() 方法。

rangespaceField3.setText(String.valueOf(bmi.getBMI()));
于 2012-05-11T19:30:12.677 回答
0

试试这个....

// 将双精度值与空字符串连接,这会将双精度转换为字符串

rangespaceField3.setText(bmi.getBMI()+"");

                OR

//在方法返回的double值上调用toString(),它也将被转换为String

rangespaceField3.setText(bmi.getBMI().toString());

于 2012-05-11T19:44:21.387 回答