实验十一:图形界面二
实验程序如下:
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
实验十一:图形界面二相关推荐
- jumpserver linux图形界面,二、jumpserver介绍、安装jumpserver、登录jumpserver
一.jumpserver介绍 官网www.jumpserver.org Jumpserver是一款使用Python, Django开发的开源跳板机系统, 助力互联网企业. 高效,用户.资产.权限.审计 ...
- EDA技术与应用实验一(图形界面实现)
EDA技术与应用实验一 实验一 实验过程 film -> new ->project 若要打开已经建立好的ModelSim工程,需使用ModelSim打开工程文件下的.mpf文件 Comp ...
- 给 FreeBSD 12.1 安装 GNOME3 图形界面
FreeBSD是一个完全开放的.安全的系统,可以Do it yourself的系统.但是个人还是不喜欢呆板的命令行界面,所有就给 FreeBSD 12.1 安装 GNOME3 图形界面. 给 Free ...
- Centos 由字符界面 init 3 切换图形界面 init 5
Centos6 和 Centos7 由字符界面切换成 图形界面方法不同,下面分别介绍. 一.Centos6 切换方法 yum -y install xorg*yum -y groupinstall & ...
- Linux系统图形界面和命令行界面之间的切换
一.系统不在虚拟机中的情况 使用ctrl+alt+F1~6切换到命令行界面:ctrl+alt+F7切换到图形界面 二.系统在虚拟机中的情况 Ctrl+Alt+shift+F1~6切换到命令行界面:使用 ...
- 【VPR】 Graphics - vpr的图形界面
目录 一.Graphics 图形界面 二.Enabling Graphics 启用图形界面功能 2.1.Compiling with Graphics Support 编译时启用图形界面支持 2.2. ...
- Java图形编程实验总结_实验二java图形界面编程2015级.doc
实验二java图形界面编程2015级.doc 实验二JAVA图形界面编程一.实验目的熟悉JAVA运行环境,编程掌握JAVASWING组件的图形界面编程.二.实验环境微机,软件MYECLIPSE,JDK ...
- Java实验二 图形界面设计
学院 计算机科学与教育软件学院 年级.专业.班 网络16* 姓名 卟咚君 学号 1606100*** 实验课程名称 Java语言实验 成绩 实验项目名称 图形界面设计 指导老师 ** 一.实验目的 • ...
- 树莓派python交互界面实例_树莓派综合项目2:智能小车(二)tkinter图形界面控制...
一.介绍 树莓派综合项目2:智能小车(一)四轮驱动中,实现了代码输入对四个电机的简单控制,本章将使用Python 的图形开发界面的库--Tkinter 模块(Tk 接口),编写本地运行的图形界面,控制 ...
最新文章
- ISLR_Power
- 《深入理解mybatis原理》 MyBatis缓存机制的设计与实现
- 谭浩强课后题之----水仙花数
- python-argparse批量修改后缀名-batch_file_rename.py
- bootstrap起步 全局css样式概览 全局css样式_栅格 全局css样式_排版
- 大型企业网络设备管理
- Python模拟登录哔哩哔哩
- 社会计算:服务群体社会的大数据科学
- ajax传值改变对应样式(方法:定义属性)
- 使用SQL Server数据工具进行SQL单元测试
- 详解Spring Security进阶身份认证之UserDetailsService(附源码)
- EasyCVR人脸识别框在播放器上显示及消失的机制设定
- [UPC] 2021秋组队17
- Android:日志系统
- 关于即将到来的软件行业的降维打击的几点想法
- [转]	 Photoshop教程8000例
- shell脚本实践:自动清理文件,以时间方式形成路径的图片或者是Excel、pdf等文件
- 清明祭:缅怀手机领域的那些先烈厂商们,你可还记得?
- magnifierrentgen(放大镜)插件的使用
- 宿州工业学校计算机,宿州工业学校有哪些专业
热门文章
- 浏览器打印设置横向打印_爱普生打印机无线连接设置
- java citymap_Java实现Map集合二级联动
- android 上下滚动文字_计算机毕设项目004之Android系统在线小说阅读器
- C++实现一个http服务器
- c++ 从 string 到 short
- OLTP 系统和 OLAP 系统的核心设计思想
- 数字图像处理知识总结
- 密码学加密算法分类_密码学中的国际数据加密算法(IDEA)
- Java——集合(输入一串字符串,统计字符串中每个字符出现的次数)
- linux测试固态硬盘读写速度,在 Linux 上检测 IDE/SATA SSD 硬盘的传输速度