实验程序如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Example1 extends JFrame {
 private int add=1,sub=2,mul=3,div=4;
 private int op=0;
 boolean ifOp;
 private String output="0";
 private Button[] jba=new Button[]{
 new Button("7"),new Button("8"),new Button("9"),new Button("+"),
 new Button("4"),new Button("5"),new Button("6"),new Button("-"),
 new Button("1"),new Button("2"),new Button("3"),new Button("*"),
 new Button("0"),new Button("."),new Button("="),new Button("/")};
 private JPanel jpt=new JPanel();
 private JPanel jpb=new JPanel();
 private JTextField jtf=new JTextField("");
 private Example1(){
  jpt.setLayout(new BorderLayout());
  jpt.add(jtf);
  this.add(jpt,BorderLayout.NORTH);
  jpb.setLayout(new GridLayout(4,4));
  for(int i=0;i<jba.length;i++){
  jpb.add(jba[i]);
  if(i==3||i==7||i==11||i==15||i==14)
  jba[i].addActionListener(new setOperate_Act());
  else
  jba[i].addActionListener(new setLabel_Act());
  }
  this.add(jpb,BorderLayout.CENTER);
  this.setSize(200, 200); 
  this.setResizable(false);
  this.setVisible(true);
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
 private void operate(String x){double x1=Double.valueOf(x);
 double y=Double.valueOf(output);
 switch(op){
 case 0:output=x;break;
 case 1:output=String.valueOf(y+x1);break;
 case 2:output =String.valueOf(y-x1);break;
 case 3:output =String.valueOf(y*x1);break;
 case 4:
 if(x1!=0) output=String.valueOf(y/x1);
 else output="不能为0";
 break;
 }
 }
 public String add(String x){
 operate(x);
 op=add;
 return output;
 }
 public String subtract(String x){
  operate(x);
  op=sub;
 return output;
 }
 public String multiply(String x){
  operate(x);
  op=mul;
 return output;
 }
 public String divide(String x){
  operate(x);
  op=div;
 return output;
 }
 public String Equals(String x){
  operate(x);
  op=0;
 return output;
 }
 public void opClean(){
  op=0;
  output="0";
 }
 class setOperate_Act implements ActionListener{
  public void actionPerformed(ActionEvent e) {
  if(e.getSource()==jba[3]){
  jtf.setText(add(jtf.getText()));
  ifOp=true;
  }
  else if(e.getSource()==jba[7]){
  jtf.setText(subtract(jtf.getText()));
  ifOp=true;
  }
  else if(e.getSource()==jba[11]){
  jtf.setText(multiply(jtf.getText()));
  ifOp=true;
  }
  else if(e.getSource()==jba[15]){
  jtf.setText(divide(jtf.getText()));
  ifOp=true;
  }
  else if(e.getSource()==jba[14]){
  jtf.setText(Equals(jtf.getText()));
  ifOp=true;
  }
  }
  }
  class setLabel_Act implements ActionListener{
  public void actionPerformed(ActionEvent e) {
  Button tempb=(Button)e.getSource();
  if(ifOp){
  jtf.setText(tempb.getLabel());
  ifOp=false;
  }else {
  jtf.setText(jtf.getText()+tempb.getLabel());
  }
  }
  }
 
 public static void main(String[] args) {
  new Example1();
 }
}

转载于:https://www.cnblogs.com/Y-CQ/p/11000285.html

实验十一:图形界面二相关推荐

  1. jumpserver linux图形界面,二、jumpserver介绍、安装jumpserver、登录jumpserver

    一.jumpserver介绍 官网www.jumpserver.org Jumpserver是一款使用Python, Django开发的开源跳板机系统, 助力互联网企业. 高效,用户.资产.权限.审计 ...

  2. EDA技术与应用实验一(图形界面实现)

    EDA技术与应用实验一 实验一 实验过程 film -> new ->project 若要打开已经建立好的ModelSim工程,需使用ModelSim打开工程文件下的.mpf文件 Comp ...

  3. 给 FreeBSD 12.1 安装 GNOME3 图形界面

    FreeBSD是一个完全开放的.安全的系统,可以Do it yourself的系统.但是个人还是不喜欢呆板的命令行界面,所有就给 FreeBSD 12.1 安装 GNOME3 图形界面. 给 Free ...

  4. Centos 由字符界面 init 3 切换图形界面 init 5

    Centos6 和 Centos7 由字符界面切换成 图形界面方法不同,下面分别介绍. 一.Centos6 切换方法 yum -y install xorg*yum -y groupinstall & ...

  5. Linux系统图形界面和命令行界面之间的切换

    一.系统不在虚拟机中的情况 使用ctrl+alt+F1~6切换到命令行界面:ctrl+alt+F7切换到图形界面 二.系统在虚拟机中的情况 Ctrl+Alt+shift+F1~6切换到命令行界面:使用 ...

  6. 【VPR】 Graphics - vpr的图形界面

    目录 一.Graphics 图形界面 二.Enabling Graphics 启用图形界面功能 2.1.Compiling with Graphics Support 编译时启用图形界面支持 2.2. ...

  7. Java图形编程实验总结_实验二java图形界面编程2015级.doc

    实验二java图形界面编程2015级.doc 实验二JAVA图形界面编程一.实验目的熟悉JAVA运行环境,编程掌握JAVASWING组件的图形界面编程.二.实验环境微机,软件MYECLIPSE,JDK ...

  8. Java实验二 图形界面设计

    学院 计算机科学与教育软件学院 年级.专业.班 网络16* 姓名 卟咚君 学号 1606100*** 实验课程名称 Java语言实验 成绩 实验项目名称 图形界面设计 指导老师 ** 一.实验目的 • ...

  9. 树莓派python交互界面实例_树莓派综合项目2:智能小车(二)tkinter图形界面控制...

    一.介绍 树莓派综合项目2:智能小车(一)四轮驱动中,实现了代码输入对四个电机的简单控制,本章将使用Python 的图形开发界面的库--Tkinter 模块(Tk 接口),编写本地运行的图形界面,控制 ...

最新文章

  1. ISLR_Power
  2. 《深入理解mybatis原理》 MyBatis缓存机制的设计与实现
  3. 谭浩强课后题之----水仙花数
  4. python-argparse批量修改后缀名-batch_file_rename.py
  5. bootstrap起步 全局css样式概览 全局css样式_栅格 全局css样式_排版
  6. 大型企业网络设备管理
  7. Python模拟登录哔哩哔哩
  8. 社会计算:服务群体社会的大数据科学
  9. ajax传值改变对应样式(方法:定义属性)
  10. 使用SQL Server数据工具进行SQL单元测试
  11. 详解Spring Security进阶身份认证之UserDetailsService(附源码)
  12. EasyCVR人脸识别框在播放器上显示及消失的机制设定
  13. [UPC] 2021秋组队17
  14. Android:日志系统
  15. 关于即将到来的软件行业的降维打击的几点想法
  16. [转] Photoshop教程8000例
  17. shell脚本实践:自动清理文件,以时间方式形成路径的图片或者是Excel、pdf等文件
  18. 清明祭:缅怀手机领域的那些先烈厂商们,你可还记得?
  19. magnifierrentgen(放大镜)插件的使用
  20. 宿州工业学校计算机,宿州工业学校有哪些专业

热门文章

  1. 浏览器打印设置横向打印_爱普生打印机无线连接设置
  2. java citymap_Java实现Map集合二级联动
  3. android 上下滚动文字_计算机毕设项目004之Android系统在线小说阅读器
  4. C++实现一个http服务器
  5. c++ 从 string 到 short
  6. OLTP 系统和 OLAP 系统的核心设计思想
  7. 数字图像处理知识总结
  8. 密码学加密算法分类_密码学中的国际数据加密算法(IDEA)
  9. Java——集合(输入一串字符串,统计字符串中每个字符出现的次数)
  10. linux测试固态硬盘读写速度,在 Linux 上检测 IDE/SATA SSD 硬盘的传输速度