将 JTextField 输入转换为整数

Posted

技术标签:

【中文标题】将 JTextField 输入转换为整数【英文标题】:Convert JTextField input into an Integer 【发布时间】:2012-06-19 17:39:44 【问题描述】:

我是 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);
    
 

【问题讨论】:

你的问题是什么? Integer.parseInt(stringVariable) 应该将 String 转换为 int。我看到你正在使用它。 您遇到的错误是什么? NOTE: this code does not compile at the moment, before it was but now obviously it won't since it is a mess.:解决方案是“解开”它。当然修复任何错误。如果有任何您不知道如何解决的问题,请告诉我们这些错误,因为我们无法读心。 我这里有两个文件,我正在处理另一个文件来实现动作监听器,现在我关心的是我必须在这个文件中做什么才能将它链接到一个在这里。如果这样做了,我确信错误会消失...... 【参考方案1】:

代替:

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,但您可以解析包含的 - 文本。

【讨论】:

【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

我已经基于 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>  

【讨论】:

【参考方案4】:

需要解析TextField的值:

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

同样

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

等等……

【讨论】:

以上是关于将 JTextField 输入转换为整数的主要内容,如果未能解决你的问题,请参考以下文章

将 JTextField 输入限制为整数 [重复]

如何将来自JTextField的输入转换为日期?

尝试仅允许将数字输入JTextField,将非数字设置为0

键入时将文本转换为大写

如何在mysql中添加整数和Varchar(20)并存储为Varchar(20)

请教各位java大神,怎么限制输入框JTextField中只能输入小数和整数,最好能提供详细点的回答(不是web的)。