将JTextField输入转换为Integer

时间:2012-06-17 12:16:00

标签: java string parsing jtextfield japplet

我是JAVA的新手,我正在尝试将来自JTextField的输入转换为整数,我尝试了很多选项,但没有任何工作,eclipse总是给我一个错误,错误没有意义我

import java.awt.Graphics;     import java.awt.Color;

public class circle extends Shape{

public int x;
public int y;
public int Radius;

public circle (int Radius, int x, int y, Color c){
    super(c);
    this.x = x;
    this.y = y;
    this.Radius = Radius;
}
    public void draw(Graphics g){
        g.setColor(super.getColor());
        g.fillOval(x-Radius, y-Radius, Radius * 2, Radius * 2);
    }
 }

4 个答案:

答案 0 :(得分:10)

取代:

JTextField f1 = new JTextField("-5");

//xaxis1 = Integer.parseInt(f1);

试试这个:

JTextField f1 = new JTextField("-5");
String text = f1.getText();
int xaxis1 = Integer.parseInt(text);

您无法将TextField解析为Integer,但可以解析包含的 - 文字。

答案 1 :(得分:2)

您有两个主要错误立即浮现在脑海中:

  • 首先,你试图解析JTextField本身,而不是它所拥有的文本(正如dantuch指出的那样 - 1+给他)。
  • 接下来,即使您要成功解析JTextField所持有的文本,在程序中此时这样做也没有效率,因为您在创建JTextField时正在执行此操作,并且不会给予用户更改字段所持有的值的机会。

更好的解决方案是解析JTextField所持有的文本,再次像dantuch所暗示的那样,但是要在某种类型的侦听器中执行,也许是由JButton推送触发的ActionListener。

答案 2 :(得分:1)

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

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

也许您觉得它们很有用(图书馆是开源的):

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/

的Maven:

<dependency>  
    <groupId>org.softsmithy.lib</groupId>  
    <artifactId>lib-core</artifactId>  
    <version>0.1</version>  
</dependency>  

答案 3 :(得分:0)

您需要解析TextField

的值
int i = Integer.parseInt("-10");

类似地

double d = Double.parseDouble("-10.0");

等...

相关问题