米有猫饼 2021-12-06 18:43 采纳率: 50%
浏览 13
已结题

JAVA GUI建议计算机 能帮看看是哪里出问题了吗?

不管点什么,“=”后的运行结果都是0.0

import java.awt.;
import java.awt.event.
;

public class BB extends Frame implements ActionListener,WindowListener{
Label res;
TextField w;
Panel p;
Panel p1;
Button J7 = new Button("7");
Button J8 = new Button("8");
Button J9 = new Button("9");
Button J0 = new Button("0");
Button J1 = new Button("1");
Button J2 = new Button("2");
Button J3 = new Button("3");
Button J4 = new Button("4");
Button J5 = new Button("5");
Button J6 = new Button("6");
Button M= new Button("*");
Button S = new Button("+");
Button D = new Button("/");
Button C = new Button("C");
Button E = new Button("=");
Button A = new Button("-");
public BB( ) {
// TODO 自动生成的 构造函数存根
super("计算器");
res = new Label("");
w = new TextField(16);
p = new Panel( );
w.setFont(new Font("宋体",Font.BOLD,50));
this.setLayout(new BorderLayout(20,20));
p.setLayout(new GridLayout(4,4,20,20));
this.add("North",res);
this.add("Center",w);
this.add("South",p);
p.add(J7);
p.add(J8);
p.add(J9);
p.add(D);
p.add(J4);
p.add(J5);
p.add(J6);
p.add(M);
p.add(J1);
p.add(J2);
p.add(J3);
p.add(S);
p.add(C);
p.add(J0);
p.add(A);
p.add(E);
addWindowListener(this);
this.setSize(360,360);
p.setSize(260,260);
this.setLocation(800,300);
J0.addActionListener(this);
J1.addActionListener(this);
J2.addActionListener(this);
J3.addActionListener(this);
J4.addActionListener(this);
J5.addActionListener(this);
J6.addActionListener(this);
J7.addActionListener(this);
C.addActionListener(this);
E.addActionListener(this);
A.addActionListener(this);
S.addActionListener(this);
}
public static void main(String args[ ]){
BB c = new BB( );
c.setVisible(true);

}
@Override
public void windowOpened(WindowEvent e) {
    // TODO 自动生成的方法存根
    
}
@Override
public void windowClosing(WindowEvent e) {
    // TODO 自动生成的方法存根
    System.exit(0);
}
@Override
public void windowClosed(WindowEvent e) {
    // TODO 自动生成的方法存根
    
}
@Override
public void windowIconified(WindowEvent e) {
    // TODO 自动生成的方法存根
    
}
@Override
public void windowDeiconified(WindowEvent e) {
    // TODO 自动生成的方法存根
    
}
@Override
public void windowActivated(WindowEvent e) {
    // TODO 自动生成的方法存根
    
}
@Override
public void windowDeactivated(WindowEvent e) {
    // TODO 自动生成的方法存根
    
}
public void actionPerformed(ActionEvent e) {
    // TODO 自动生成的方法存根
    double flag1 = 0,flag2 = 0,flag3 = 0;
    int m = 0;
    if (e.getSource()==J0){
        w.setText(w.getText()+"0");
        flag1 = Double.parseDouble(w.getText());
    }
    else if (e.getSource() == J1){
        w.setText(w.getText()+"1");
        flag1 = Double.parseDouble(w.getText());
    }
    else if (e.getSource() == J2){
        w.setText(w.getText()+"2");
        flag1 = Double.parseDouble(w.getText());
    }
    else if (e.getSource() == J3){
        w.setText(w.getText()+"3");
        flag1 = Double.parseDouble(w.getText());
    }
    else if (e.getSource() == J4){
        w.setText(w.getText()+"4");
        flag1 = Double.parseDouble(w.getText());
    }
    else if (e.getSource() == J5){
        w.setText(w.getText()+"5");
        flag1 = Double.parseDouble(w.getText());
    }
    else if (e.getSource() == J6){
        w.setText(w.getText()+"6");
        flag1 = Double.parseDouble(w.getText());
    }
    else if (e.getSource() == J7){
        w.setText(w.getText()+"7");
        flag1 = Double.parseDouble(w.getText());
    }
    if (e.getSource() == C){
        w.setText("");
    }
    if (e.getSource() == S){
        w.setText("");
        flag2 = flag1;
        m = 0;
    }
     if (e.getSource() == A){
        w.setText("");
        flag2=flag1;
        m = 1;
    }
     if (e.getSource() == M){
        w.setText("");
        flag2=flag1;
        m = 2;
    }
     if (e.getSource() == D){
        w.setText("");
        flag2=flag1;
        m = 3;
    }
    if (e.getSource() == E){
        if (m==0){
            flag3 = flag2 + flag1;
        }
        if ( m== 1){
            flag3 = flag2 - flag1;
        }
        if (m==2){
            flag3 = flag2 * flag1;
        }
        if (m == 3){
            flag3 = flag2 / flag1;
        }
        w.setText(flag3 + "");
    }
}

}

  • 写回答

1条回答 默认 最新

  • CSDN专家-sinJack 2021-12-06 18:48
    关注

    在对应的事件里面加点输出,看下逻辑。

    
    if (e.getSource() == E){
            if (m==0){
                flag3 = flag2 + flag1;
            }
            if ( m== 1){
                flag3 = flag2 - flag1;
            }
            if (m==2){
                flag3 = flag2 * flag1;
            }
            if (m == 3){
                flag3 = flag2 / flag1;
            }
            w.setText(flag3 + "");
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月14日
  • 已采纳回答 12月6日
  • 创建了问题 12月6日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装