JAVA怎样获得 getText() 的内容并转化成Int型

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)

final String key1 = key.getText().trim();
int m=Integer.parseInt(key1);

我输入123 提示错误
问题整理简化如下
JTextField key = new JTextField();
final String key1 = key.getText();if (! key1.isEmpty()) { m=Integer.parseInt(key1); }

1、新建一个TextField:TextField text = new TextField();
2、获取TextField里的内容:String s = text.getText();
3、将内容转化成int 类型:int i = Integer.parseInt(s);
前提是可以转化,如果类型不能转化为int类型,则会报错,比如:String s = "abc...";
这明显是字符而不是数字,所以转换时会报java.lang.ClassCastException异常
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-26
代码发的我的邮箱里,我帮你看看[email protected]
上面补充的代码有问题应该是这样的吧

final String key1 = key.getText(); if (key1 != null && !"".equals(key1)) { m=Integer.parseInt(key1); }

能多发点代码吗,发的太少了追问

JTextField key = new JTextField();final String key1 = key.getText();
if (! key1.isEmpty())
{ m=Integer.parseInt(key1); }
我明明输入数据但是不执行if{ }中的语句??

追答

总算看出来是什么问题了,这么点代码真累。 因为你每一次点击按钮的时候都重新new JTextField(); 这个里面肯定是没有内容的,因为这个是新的JTextField,不是你之前的加个,您应该在事件里面获取之前添加到 JPanel面板时的 JTextField,而不是每次都是重新new一个

本回答被提问者采纳
第2个回答  2013-12-30
getText 不会返回 null 。只要判断 非空字符串即可。

if( ! key1.isEmpty()) {
...
}追问

为什么我明明输入数据了,但是不执行if{ }中的语句?

第3个回答  2013-12-30
我是个初学者。其实写不出来程序,提点建议吧,好像应该重写个TOstring方法,输出INT类的。或者是直接定义key1的时候定义成INT。
第4个回答  2013-12-30
要用equals追问

说详细点

追答

if(key1!=null && "".equals(key)){。。。}