回 帖 发 新 帖 刷新版面

主题:[讨论]swing 编程问题

为甚麽结果总是 “错误数据”? 出现了什么异常啊? 

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class Computer {
    
    JFrame jf;
    JPanel jp;
    TextField tf1,tf2,tf3,tf4;
    JLabel jlb;
    Button btn;
    String str1,str2,str3,str4;
    float d1,d2;
    double d4;
    
    public Computer() {
        jf = new JFrame("计算");
        jp = new JPanel();
        tf1 = new TextField();
        tf2 = new TextField();
        tf3 = new TextField();
        tf4 = new TextField();
        jlb = new JLabel("=");
        btn = new Button("计算");
        
        jp.setLayout(new FlowLayout());
        jp.add(tf1); jp.add(tf2); jp.add(tf3); 
        jp.add(jlb); jp.add(tf4); jp.add(btn);
        jf.add(jp);
        
        
        jf.setSize(200,100);
        jf.setVisible(true);
        btn.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                 
    try
    {
        str1 = tf1.getText();
        str2 = tf2.getText();
        str3 = tf3.getText();
        
        d1 = Float.parseFloat(str1);
        d2 = Float.parseFloat(str2);
        
        if(str3.equals("+"))  d4 = d1+d2;
        else if(str3.equals("-")) d4 = d1-d2;
        else if(str3.equals("*")) d4 = d1*d2;
        else if(str3.equals("/")) d4 = d1/d2;
        
        tf4.setText(Double.toString(d4));
       
    }
    catch(Exception e1){
        tf4.setText("错误数据");
    }
            }
    
        
        
    });
    
    }
    
    public static void  main(String[] args)
    {
        Computer cm = new Computer();
    
    }
    
}

回复列表 (共1个回复)

沙发


d2 = Float.parseFloat(str3);     // str2->str3
        
if(str2.equals("+"))  d4 = d1+d2;     //str3->str2
else if(str2.equals("-")) d4 = d1-d2;
else if(str2.equals("*")) d4 = d1*d2;
else if(str2.equals("/")) d4 = d1/d2;

我来回复

您尚未登录,请登录后再回复。点此登录或注册