5

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

导入 java.awt.Graphics;导入 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

4 回答 4

14

代替:

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

//xaxis1 = Integer.parseInt(f1);

试试这个:

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

您无法解析TextFieldInteger,但可以解析其包含的- 文本。

于 2012-06-17T12:25:50.437 回答
2

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

  • 首先,您尝试解析 JTextField 本身,而不是它所包含的文本(正如 dantuch 所指出的——对他来说是 1+)。
  • 接下来,即使您要成功解析 JTextField 保存的文本,在您的程序中执行此操作也不会产生效果,因为您将在创建 JTextField 时执行此操作,并且不会给用户机会更改字段保存的值。

一个更好的解决方案是解析 JTextField 保存的文本,再次如 dantuch 所建议的那样,但要在某种侦听器中执行此操作,可能是由 JButton 推送触发的 ActionListener。

于 2012-06-17T12:35:22.880 回答
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/

马文:

<dependency>  
    <groupId>org.softsmithy.lib</groupId>  
    <artifactId>lib-core</artifactId>  
    <version>0.1</version>  
</dependency>  
于 2012-06-17T12:40:21.097 回答
0

您需要解析的值TextField

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

相似地

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

ETC...

于 2012-06-17T12:46:49.660 回答