欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

java图形界面AWT编写计算器

时间:2021-01-20 14:19:00|栏目:JAVA代码|点击:

一、前言

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的简单使用

关于计算器的精彩文章请查看《计算器专题》 ,更多精彩等你来发现!

上一篇:java selenium操作弹出对话框示例讲解

栏    目:JAVA代码

下一篇:详解SpringBoot 使用Spring Initializr 快速构建工程(官方推荐)

本文标题:java图形界面AWT编写计算器

本文地址:http://www.codeinn.net/misctech/48370.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有