勾手:关于一个Java程序的疑问

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 21:28:51
问题如下:

编写Java Application,接受用户输入的一个字符,减去1后在图形界面上输出.
(我写的程序问题在于,只能输入数字而不能输入字符,一旦输入字符,则提示错误信息如下:
D:\MyClass\Char_Char1>java Char_Char1
java.lang.NumberFormatException: c
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at ApplctFrame.action(Char_Char1.java:29)
at java.awt.Component.handleEvent(Unknown Source)
at ApplctFrame.handleEvent(Char_Char1.java:36)
at java.awt.Window.postEvent(Unknown Source)
at java.awt.Component.postEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
我的程序代码如下:
import java.io.*;
import java.awt.*;
public class Char_Char1
{
public static void main(String args[])
{
ApplctFrame My_Frame =new ApplctFrame();
}
}
class ApplctFrame extends Frame
{
Label prompt;
TextField input;
Label output;
ApplctFrame(){
super("习题二 2.3习题自编");
setLayout(new FlowLayout());
prompt=new Label("请你输入一个字符: ");
input=new TextField(5);
output=new Label(" ");
add(prompt);
add(input);
add(output);
pack();
show();
}
public boolean action(Event e ,Object o){
int temp;
temp=Integer.parseInt(input.getText());
output.setText("您输入的字符字符减去 1 后输出为: "+(temp-1));
return true;
}
public boolean handleEvent(Event e){
if (e.id==Event.WINDOW_DESTROY)
System.exit(0);
return super.handleEvent(e);
}
}
我加入了您给的代码,但是系统提示:
D:\>javac Char_Char1.java
Char_Char1.java:29: incompatible types
found : int
required: java.lang.String
String i=5;
^
Note: Char_Char1.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.
1 error
我不知道是怎么回事,另外字符如果按照ASCII玛的话字符不会超过整数的最高限制啊!
麻烦高手,请给我一个已经加入或修改后的程序代码上来,不胜感激.

你这个问题很简单
用try-catch就能实现
try{
temp=Integer.parseInt(input.getText());
}
catch(Exception e){
output.setText("输入的数字有误");//你的异常处理
}

输入的字符取值不正确.
加两行代码测试一下你输入的字符的取值.
parseInt() 的用法:
String i=5;
int a = Integer.parseInt(i) ;
要注意的可以输入什么样的值.