标题:烦请前辈们看一下,这个小程序我卡住了
只看楼主
邢宝辉
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-12-1
结帖率:0
已结贴  问题点数:20 回复次数:2 
烦请前辈们看一下,这个小程序我卡住了
完成一个用来进行加、减、乘、除运算功能的简易计算器。
界面上有三个文本框,其中两个用来输入参与运算的两个数,加、减、乘、除运算符号放于按钮上,用来选择,
当在第二个文本框中输入数字后,直接回车,在第三个文本框中直接显示结果。


package practice;
import java.awt.*;

import javax.swing.*;

import java.awt.event.*;
public class TX8 extends JFrame implements ActionListener
    {
     Label bq1=new Label("请输入第一个数据:");
     Label bq2=new Label("请选择运算按钮:");
     Label bq3=new Label("请输入第二个数据:");
     Label bq4=new Label("计算结果:");
     JButton an1=new JButton("+");   
     JButton an2=new JButton("-");
     JButton an3=new JButton("*");
     JButton an4=new JButton("/");
     JTextField T1=new JTextField(10);
     JTextField T2=new JTextField(10);
     JTextField T3=new JTextField(10);
     int a,b;
     public static void main(String[] args)
    {
        TX8 jsq=new TX8();
    }
    public TX8()
    {
    setLayout(new FlowLayout());
    add(bq1);add(T1);
    add(bq2);add(an1);add(an2);add(an3);add(an4);
    add(bq3);add(T2);
    add(bq4);add(T3);
    T3.setEditable(false);
    an1.addActionListener(this);//注册监听器
    an2.addActionListener(this);
    an3.addActionListener(this);
    an4.addActionListener(this);
    T2.addActionListener(this);
    setSize(150,350);
    setLocation(300,300);
    this.setResizable(false);
    setTitle("简易计算器");
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setVisible(true);
    }
   public void actionPerformed(ActionEvent e) //从这条代码开始,功能实现我不会写了
   {
    a=Integer.parseInt(T1.getText());
    //b=Integer.parseInt(T2.getText());
    if (e.getSource()==an1){
        b=Integer.parseInt(T2.getText());
    }
     if (e.getSource()==T2.getText())
     { T3.setText("");
      T3.setText(Integer.toString(a+b));     
     }
     
   
   
   }
   }
搜索更多相关主题的帖子: 计算器 practice package public import 
2013-12-01 14:51
zjcl817
Rank: 4
来 自:残狼部落
等 级:业余侠客
威 望:2
帖 子:68
专家分:206
注 册:2013-11-11
得分:10 
论坛里面好像有个计算器代码你可以借鉴一下。
2013-12-02 09:10
轻笑爱风尘
Rank: 2
等 级:论坛游民
帖 子:13
专家分:20
注 册:2013-11-24
得分:10 
给你点提示,这是以前做的你参考一下
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Jsuanji extends JFrame implements ActionListener{
  private JPanel jPanel1,jPanel2;
  private JTextField resultField;
  private JButton s1,s2,s3,s4,s5,s6,s7,s8,s9,s0,b1,b2,b3,b4,f1,f2;
  private boolean end,add,sub,mul,div;
  private String str;
  private double num1,num2;
  
public Jsuanji(){
   super("计算器");
   setSize(300,240);
   Container con=getContentPane();
   con.setLayout(new BorderLayout());
   jPanel1=new JPanel();
   jPanel1.setLayout(new GridLayout(1,1));
   jPanel2=new JPanel();
   jPanel2.setLayout(new GridLayout(4,4));
   resultField=new JTextField("0");
   jPanel1.add(resultField);
   con.add(jPanel1,BorderLayout.NORTH);
   s1=new JButton("  1  ");  s1.addActionListener(this);
   s2=new JButton("  2  ");  s2.addActionListener(this);
   s3=new JButton("  3  ");  s3.addActionListener(this);   
   s4=new JButton("  4  ");  s4.addActionListener(this);
   s5=new JButton("  5  ");  s5.addActionListener(this);
   s6=new JButton("  6  ");  s6.addActionListener(this);
   s7=new JButton("  7  ");  s7.addActionListener(this);
   s8=new JButton("  8  ");  s8.addActionListener(this);
   s9=new JButton("  9  ");  s9.addActionListener(this);
   s0=new JButton("  0  ");  s0.addActionListener(this);
   b1=new JButton("  +  ");  b1.addActionListener(this);
   b2=new JButton("  -  ");  b2.addActionListener(this);
   b3=new JButton("  *  ");  b3.addActionListener(this);
   b4=new JButton("  /  ");  b4.addActionListener(this);
   f1=new JButton("  .  ");  f1.addActionListener(this);
   f2=new JButton("  =  ");  f2.addActionListener(this);
   jPanel2.add(s1);
   jPanel2.add(s2);
   jPanel2.add(s3);
   jPanel2.add(b1);
   jPanel2.add(s4);
   jPanel2.add(s5);
   jPanel2.add(s6);
   jPanel2.add(b2);
   jPanel2.add(s7);
   jPanel2.add(s8);
   jPanel2.add(s9);
   jPanel2.add(b3);
   jPanel2.add(s0);  
   jPanel2.add(f1);
   jPanel2.add(f2);
   jPanel2.add(b4);
   con.add(jPanel2,BorderLayout.CENTER);

   }
public void num(int i){
  String s = null;
  s=String.valueOf(i);
  if(end){
   //如果数字输入结束,则将文本框置零,重新输入
    resultField.setText("0");
    end=false;
   
    }
  if((resultField.getText()).equals("0")){
   //如果文本框的内容为零,则覆盖文本框的内容
   resultField.setText(s);
   
   }
  else{
    //如果文本框的内容不为零,则在内容后面添加数字
    str = resultField.getText() + s;
    resultField.setText(str);
   
    }
 }
 
public void actionPerformed(ActionEvent e){ //数字事件
    if(e.getSource()==s1)
     num(1);
    else if(e.getSource()==s2)
    num(2);
    else if(e.getSource()==s3)
    num(3);
    else if(e.getSource()==s4)
    num(4);
    else if(e.getSource()==s5)
    num(5);
    else if(e.getSource()==s6)
    num(6);
    else if(e.getSource()==s7)
    num(7);
    else if(e.getSource()==s8)
    num(8);
    else if(e.getSource()==s9)
    num(9);
    else if(e.getSource()==s0)
    num(0);
   
    //符号事件  
    else if(e.getSource()==b1)
    sign(1);
    else if(e.getSource()==b2)
    sign(2);
    else if(e.getSource()==b3)
    sign(3);
    else if(e.getSource()==b4)
    sign(4);
    //等号
    else if(e.getSource()==f1){
    str=resultField.getText();
    if(str.indexOf(".")<=1){
     str+=".";
     resultField.setText(str);
     }
    }
    else if(e.getSource()==f2){
    num2=Double.parseDouble(resultField.getText());

if(add){
     num1=num1 + num2;}
    else if(sub){
     num1=num1 - num2;}
    else if(mul){
     num1=num1 * num2;}
    else if(div){
     num1=num1 / num2;}
  resultField.setText(String.valueOf(num1));
  end=true;   
  }   
                        
  }
public void sign(int s){
   if(s==1){
    add=true;
    sub=false;
    mul=false;
    div=false;
    }
    else if(s==2){
     add=false;
     sub=true;
     mul=false;
     div=false;
     }
    else if(s==3){
     add=false;
     sub=false;
     mul=true;
     div=false;
      }
    else if(s==4){
     add=false;
     sub=false;
     mul=false;
     div=true;
     }
  num1=Double.parseDouble(resultField.getText());
  end=true;
 }   
public static void main(String[] args){
    Jsuanji th1=new Jsuanji();
    th1.show();
    }
    }
2013-12-06 20:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-424515-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.171598 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved