有这样一段java程序,按要求添加代码。

要求,在此代码基础上要求如果输入的不是数字或者没有输入,显示“请输入数字”。用抛出异常写。然后再是把最后的结果传输到file里去。代码:importjava.awt.*;... 要求,在此代码基础上要求如果输入的不是数字或者没有输入,显示“请输入数字”。用抛出异常写。然后再是把最后的结果传输到file里去。
代码:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import javax.swing.*;

public class JDemo extends JFrame implements ActionListener{
JLabel lb;
JTextField jt1,jt2,jt3;
public JDemo(){
Container c=getContentPane();
c.setLayout(new FlowLayout());
jt1=new JTextField(10);
c.add(jt1);
JLabel lb1=new JLabel("+");
c.add(lb1);
jt2=new JTextField(10);
c.add(jt2);
JLabel lb2=new JLabel("=");
c.add(lb2);
jt3=new JTextField(10);
c.add(jt3);
JButton jb=new JButton("OK");
c.add(jb);
jb.addActionListener(this);
lb=new JLabel();
c.add(lb);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setSize(200,200);
}
public void actionPerformed(ActionEvent e)
{
if(Integer.parseInt(jt1.getText())+Integer.parseInt(jt2.getText())==Integer.parseInt(jt3.getText()))
{lb.setText("没问题!");
lb.setForeground(Color.blue);
}
else
{lb.setText("对不起!");
lb.setForeground(Color.red);
}
}
public static void main(String args[]){
new JDemo();
}
}
说错了,最后传输到file里的是那个算式。
展开
 我来答
903870967
2011-12-10 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:257
采纳率:0%
帮助的人:115万
展开全部
我稍加改一下,在 public void actionPerformed(ActionEvent e) 中加了try catch 捕获异常,如下:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import javax.swing.*;

public class JDemo extends JFrame implements ActionListener{
JLabel lb;
JTextField jt1,jt2,jt3;
public JDemo(){
Container c=getContentPane();
c.setLayout(new FlowLayout());
jt1=new JTextField(10);
c.add(jt1);
JLabel lb1=new JLabel("+");
c.add(lb1);
jt2=new JTextField(10);
c.add(jt2);
JLabel lb2=new JLabel("=");
c.add(lb2);
jt3=new JTextField(10);
c.add(jt3);
JButton jb=new JButton("OK");
c.add(jb);
jb.addActionListener(this);
lb=new JLabel();
c.add(lb);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setSize(200,200);
}
public void actionPerformed(ActionEvent e) //加入一个捕获异常try catch 命令
{
try{
if(Integer.parseInt(jt1.getText())+Integer.parseInt(jt2.getText())==Integer.parseInt(jt3.getText()))
{lb.setText("没问题!");
lb.setForeground(Color.blue);
}
else
{lb.setText("对不起!");
lb.setForeground(Color.red);
}
}catch (NumberFormatException ee) {
lb.setText(" 请输入数字");
}
}
public static void main(String args[]){
new JDemo();
}
看看行不行?
}
追问
这个程序能不能再加一段代码,就是把正确的算式传输到txt文件里去。谢谢了。
追答
也可以,你看看下面的代码,参考
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

public class JDemo extends JFrame implements ActionListener{
JLabel lb;
JTextField jt1,jt2,jt3;
File file = null;
public JDemo(){
Container c=getContentPane();
c.setLayout(new FlowLayout());
jt1=new JTextField(10);
c.add(jt1);
JLabel lb1=new JLabel("+");
c.add(lb1);
jt2=new JTextField(10);
c.add(jt2);
JLabel lb2=new JLabel("=");
c.add(lb2);
jt3=new JTextField(10);
c.add(jt3);
JButton jb=new JButton("OK");
c.add(jb);
jb.addActionListener(this);
lb=new JLabel();
c.add(lb);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setSize(200,200);
file = new File("request.txt");
}

public void actionPerformed(ActionEvent e) { //加入一个捕获异常try catch 命令
try{
if(Integer.parseInt(jt1.getText())+Integer.parseInt(jt2.getText())==Integer.parseInt(jt3.getText())){
lb.setText("没问题!");
lb.setForeground(Color.blue);
if(!file.exists()){
try{
file.createNewFile();
FileWriter fo = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fo);
PrintWriter pw = new PrintWriter(bw);
pw.println(jt1.getText()+"+"+jt2.getText()+"="+jt3.getText());
pw.close();
}catch(IOException evt) {}
}else{
try{
FileWriter fo = new FileWriter(file,true);
BufferedWriter bw = new BufferedWriter(fo);
PrintWriter pw = new PrintWriter(bw);
pw.println(jt1.getText()+"+"+jt2.getText()+"="+jt3.getText());
pw.close();
}catch(IOException evt) {}
}
}else{
lb.setText("对不起!");
lb.setForeground(Color.red);
}
}catch (NumberFormatException ee) {
lb.setText(" 请输入数字");
}
}
public static void main(String[] args){
new JDemo();
}
}
百度网友a0124da
2011-12-10 · 超过33用户采纳过TA的回答
知道答主
回答量:111
采纳率:0%
帮助的人:77.5万
展开全部
import java.awt.*;
import java.awt.event.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.*;

public class JDemo extends JFrame implements ActionListener {

JLabel lb;
JTextField jt1, jt2, jt3;

public JDemo() {
Container c = getContentPane();
c.setLayout(new FlowLayout());
jt1 = new JTextField(10);
c.add(jt1);
JLabel lb1 = new JLabel("+");
c.add(lb1);
jt2 = new JTextField(10);
c.add(jt2);
JLabel lb2 = new JLabel("=");
c.add(lb2);
jt3 = new JTextField(10);
c.add(jt3);
JButton jb = new JButton("OK");
c.add(jb);
jb.addActionListener(this);
lb = new JLabel();
c.add(lb);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setSize(200, 200);
}

public void actionPerformed(ActionEvent e) {
try {
check();
} catch (RuntimeException re) {
String msg = re.getMessage();
// 把msg传输到file里去。
}
if (Integer.parseInt(jt1.getText()) + Integer.parseInt(jt2.getText()) == Integer.parseInt(jt3.getText())) {
lb.setText("没问题!");
lb.setForeground(Color.blue);
} else {
lb.setText("对不起!");
lb.setForeground(Color.red);
}
}

private void check() {
String v1 = jt1.getText();
String v2 = jt2.getText();
String v3 = jt3.getText();
if (v1.isEmpty() || v2.isEmpty() || v3.isEmpty()) {
throw new RuntimeException("不可为空");
}
if (isNotNum(v1) || isNotNum(v2) || isNotNum(v3)) {
throw new RuntimeException("不是数字");
}
}

private boolean isNotNum(String arg0) {
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(arg0);
if (!isNum.matches()) {
return true;
}
return false;
}

public static void main(String args[]) {
new JDemo();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
denvilliyankai
2011-12-10
知道答主
回答量:29
采纳率:0%
帮助的人:18万
展开全部
在你想提示的地方写“new Exception("请输入数字");”必须的在catch中啊。因此你必须throws一个异常,在你输错的地方。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式