加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java图形界面AWT编写计算器

发布时间:2020-12-14 14:38:18 所属栏目:Java 来源:网络整理
导读:一、前言 1)这个计算器是基于java语言下图形界面AWT编写的。其实我认为写这个计算器,实现什么功能不重要,市场也不缺这个计算器,而是在于对AWT中三大布局的及画板的使用简单控件的操作使用。通过联系熟悉掌握AWT基础为深入学习打下基

一、前言

1)这个计算器是基于java语言下图形界面AWT编写的。其实我认为写这个计算器,实现什么功能不重要,市场也不缺这个计算器,而是在于对AWT中三大布局的及画板的使用简单控件的操作使用。通过联系熟悉掌握AWT基础为深入学习打下基础。这个计算器功能也十分简单,空有其表。不过有兴趣的话可以继续添加功能完善操作等。

2)使用平台:主要使用Myeclipse2014

3)主要知识点:java 基础; awt+swing

二、功能实现及代码展示

1)主要是layout布局的练习,对画板文本框的使用,以及控件button的事件的注册与监听。因为功能也很简单,所以代码就简写到同一个类里了。实现了基本的四则运算。

2)代码如下:

import java.awt.BorderLayout; 
import java.awt.GridLayout; 
import java.awt.TextField; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import java.awt.Color; 
 
public class JiSuanJi { 
   
  private JFrame frame;  //声明相关布局面板 
  private JPanel panelwest; 
  private JPanel panelcenter; 
  private JPanel paneleast; 
  private TextField tf; 
   
  private JButton buttonzero; //声明按钮控件 
  private JButton buttondot; 
  private JButton buttonequal; 
  private JButton buttonplus,buttonminus,buttonmultiple,buttondevision,buttonsin,buttontozero; 
  private JButton buttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix,buttonseven,buttoneight,buttonnine; 
   
 
  private ButtonListener listener;            //声明监听事件 
   
  public static void main(String args[]){ 
    new JiSuanJi(); 
  } 
 
  public JiSuanJi(){ 
     
    initView();                    //实例化相关对象 
     
    setCenter();                    //布局添加控件及相关控件处理 
    setWest(); 
    setEast(); 
     
    addListener();                   //设置监听 
     
    setFrame();                    //对 frame设置布局及显示处理 
     
  } 
 
  class ButtonListener implements ActionListener{ 
    int biaozhi=0;                   //初始化相关变量 
    double flag1=0,flag2=0,flag3=0; 
    //@Override 
    public void actionPerformed(ActionEvent e){ 
      //(1)通过 e.getSource(),获取点击事件的按钮来源,作出相应处理 
 
      if(e.getSource()==buttondot){ 
        tf.setText("0."); 
      } 
      if(e.getSource()==buttontozero){ 
        tf.setText(""); 
      } 
      if(e.getSource()==buttonzero){ 
        tf.setText(tf.getText()+"0"); 
        flag1=Double.parseDouble(tf.getText()); 
      } 
      else if(e.getSource()==buttonone){ 
        tf.setText(tf.getText()+"1");//文本框显示1、2、3.。。 
        flag1=Double.parseDouble(tf.getText()); 
      } 
      else if(e.getSource()==buttontwo){ 
        tf.setText(tf.getText()+"2"); 
        flag1=Double.parseDouble(tf.getText()); 
      } 
      else if(e.getSource()==buttonthree){ 
        tf.setText(tf.getText()+"3"); 
        flag1=Double.parseDouble(tf.getText()); 
      } 
      else if(e.getSource()==buttonfour){ 
        tf.setText(tf.getText()+"4"); 
        flag1=Double.parseDouble(tf.getText()); 
      } 
      else if(e.getSource()==buttonfive){ 
        tf.setText(tf.getText()+"5"); 
        flag1=Double.parseDouble(tf.getText()); 
      } 
       
      else if(e.getSource()==buttonsix){ 
        tf.setText(tf.getText()+"6"); 
        flag1=Double.parseDouble(tf.getText()); 
      } 
      else if(e.getSource()==buttonseven){ 
        tf.setText(tf.getText()+"7"); 
        flag1=Double.parseDouble(tf.getText()); 
      } 
      else if(e.getSource()==buttoneight){ 
        tf.setText(tf.getText()+"8"); 
        flag1=Double.parseDouble(tf.getText()); 
      } 
      else if(e.getSource()==buttonnine){ 
        tf.setText(tf.getText()+"9"); 
        flag1=Double.parseDouble(tf.getText()); 
      } 
      if(e.getSource()==buttonplus){ 
        tf.setText(""); 
        flag2=flag1; 
        biaozhi=0; 
      } 
      if(e.getSource()==buttonminus){ 
        tf.setText(""); 
        flag2=flag1; 
        biaozhi=1; 
      } 
      if(e.getSource()==buttonmultiple){ 
        tf.setText(""); 
        flag2=flag1; 
        biaozhi=2; 
      } 
      if(e.getSource()==buttondevision){ 
        tf.setText(""); 
        flag2=flag1; 
        biaozhi=3; 
      } 
      if(e.getSource()==buttonsin){ 
        flag3=Math.sin(flag1); 
        tf.setText(flag3+""); 
      } 
      if(e.getSource()==buttonequal){ 
        if(biaozhi==0){ 
          flag3=flag2+flag1; 
        } 
        if(biaozhi==1){ 
          flag3=flag2-flag1; 
        } 
        if(biaozhi==2){ 
          flag3=flag2*flag1; 
        } 
        if(biaozhi==3){ 
          flag3=flag2/flag1; 
        } 
        tf.setText(flag3+""); 
      } 
    } 
  } 
   
  private void initView(){ 
     
    /** 
     * 创建框架、小容器对象、按钮对象 
     */ 
    tf = new TextField(30);//初始化界面宽度 
    frame = new JFrame("简易计算机"); 
    panelcenter = new JPanel(); 
    panelwest = new JPanel(); 
    paneleast = new JPanel(); 
     
    listener = new ButtonListener(); //实例化监听对象 
  } 
   
  private void setCenter(){ 
     
    //(1)初始化控件显示值 
    buttonone=new JButton("1"); 
    buttontwo=new JButton("2"); 
    buttonthree=new JButton("3"); 
    buttonfour=new JButton("4"); 
    buttonfive=new JButton("5"); 
    buttonsix=new JButton("6"); 
    buttonseven=new JButton("7"); 
    buttoneight=new JButton("8"); 
    buttonnine=new JButton("9"); 
     
    //(2)设置布局样式 
    panelcenter.setLayout(new GridLayout(3,3));//根据内容多少来布局 
     
    //(3)中央布局添加控件按钮 
    panelcenter.add(buttonone); 
    panelcenter.add(buttontwo); 
    panelcenter.add(buttonthree); 
    panelcenter.add(buttonfour); 
    panelcenter.add(buttonfive); 
    panelcenter.add(buttonsix); 
    panelcenter.add(buttonseven); 
    panelcenter.add(buttoneight); 
    panelcenter.add(buttonnine); 
  } 
   
  private void setEast(){ 
     
    //(1)设置控件显示符号 
    buttonplus=new JButton("+"); 
    buttonminus=new JButton("-"); 
    buttonmultiple=new JButton("*"); 
    buttondevision=new JButton("/"); 
    buttonsin=new JButton("sin"); 
    buttontozero=new JButton("清除"); 
     
    //(2)设置布局样式 
    paneleast.setLayout(new GridLayout(3,2)); 
     
    //(3)右布局添加相应按钮控件 
    paneleast.add(buttonplus); 
    paneleast.add(buttonminus); 
    paneleast.add(buttonmultiple); 
    paneleast.add(buttondevision); 
    paneleast.add(buttonsin); 
    paneleast.add(buttontozero); 
     
  } 
 
  private void setWest(){ 
     
    //(1)初始化控件显示值 
    buttonzero=new JButton("0"); 
    buttondot=new JButton("."); 
    buttonequal = new JButton("="); 
     
    //(2)对这三个按钮设置布局 
    panelwest.setLayout(new GridLayout(3,1)); 
     
    //(3)左边布局添加按钮控件,将三个按钮添加入布局 
    panelwest.add(buttonzero); 
    panelwest.add(buttondot); 
    panelwest.add(buttonequal); 
     
  } 
 
  private void addListener(){ 
     
    //(1)对 1-9对应的按钮添加监听 
    buttonone.addActionListener(listener); 
    buttontwo.addActionListener(listener); 
    buttonthree.addActionListener(listener); 
    buttonfour.addActionListener(listener); 
    buttonfive.addActionListener(listener); 
    buttonsix.addActionListener(listener); 
    buttonseven.addActionListener(listener); 
    buttoneight.addActionListener(listener); 
    buttonnine.addActionListener(listener); 
     
    //(2)对运算符对应的按钮添加监听 
    buttonplus.addActionListener(listener); 
    buttonminus.addActionListener(listener); 
    buttonmultiple.addActionListener(listener); 
    buttondevision.addActionListener(listener); 
    buttonsin.addActionListener(listener); 
    buttontozero.addActionListener(listener); 
     
    //(3)对其与的符号对应的按钮监听 
    buttonzero.addActionListener(listener); 
    buttondot.addActionListener(listener); 
    buttonequal.addActionListener(listener); 
     
  } 
 
  private void setFrame(){ 
     
    frame.setLayout(new BorderLayout()); 
    //将准备的不同方位的内容加入大框架 
    frame.add(paneleast,"East"); 
    frame.add(tf,BorderLayout.NORTH); 
    frame.add(panelwest,BorderLayout.WEST); 
    frame.add(panelcenter,BorderLayout.CENTER); 
    //设置颜色 
    tf.setBackground(Color.green); 
    frame.pack(); 
    //将框架展开 
    frame.setLocation(500,500); 
    //程序框架在屏幕的位置 
    frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); 
    //退出进程,不加此句,关闭页面但程序进程仍在后台运行 
    frame.setVisible(true); 
    //一个图形界面默认都是不可见的,setVisible是把图形界面设置为可见 
     
  } 
} 

代码测试可用。

三、演示与效果

1)运行界面如下:


当然了图形界面大小位置可调,也可初始化其位置与大小。

 2)简单测试四则运算:11*12




好像简单的不能再简单了。这个计算器写下来重点是布局的联系button的简单使用

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读