代码:

Example9_8.java

public class Example9_8

{

public static void main(String args[]){

WindowOperation win = new WindowOperation();

win.setBounds(100,100,390,360);

win.setTitle("简单计算器");

}

}

WindowOperation.java

import java.awt.*;

import javax.swing.*;

import java.io.*;

public class WindowOperation extends JFrame

{

JTextField inputNumberOne,inputNumberTwo;

JComboBox choiceFuhao;

JTextArea textShow;

JButton button;

OperatorListener operator;

ComputerListener computer;

public WindowOperation()

{

init();

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

void init(){

setLayout(new FlowLayout());

inputNumberOne = new JTextField(5);

inputNumberTwo = new JTextField(5);

choiceFuhao= new JComboBox();

button=new JButton("计算");

choiceFuhao.addItem("选择运算符号:");

String [] a={"+","-","*","/"};

for(int i=0;i

choiceFuhao.addItem(a[i]);

}

textShow=new JTextArea(9,30);

operator=new OperatorListener();

computer=new ComputerListener();

operator.setJComboBox(choiceFuhao);

operator.setWorkTogether(computer);

computer.setJTextFieldOne(inputNumberOne);

computer.setJTextFieldTwo(inputNumberTwo);

computer.setJTextArea(textShow);

choiceFuhao.addItemListener(operator);

button.addActionListener(computer);

add(inputNumberOne);

add(choiceFuhao);

add(inputNumberTwo);

add(button);

add(new JScrollPane(textShow));

}

}

OperatorListener.java

import java.awt.event.*;

import javax.swing.*;

public class OperatorListener implements ItemListener

{

JComboBox choice;

ComputerListener workTogether;

public void setJComboBox(JComboBox box){

choice =box;

}

public void setWorkTogether(ComputerListener computer){

workTogether=computer;

}

public void itemStateChanged(ItemEvent e){

String fuhao= choice.getSelectedItem().toString();

workTogether.setFuhao(fuhao);

}

}

ComputerListener.java

import java.awt.event.*;

import javax.swing.*;

public class ComputerListener implements ActionListener

{

JTextField inputNumberOne,inputNumberTwo;

JTextArea textShow;

String fuhao;

public void setJTextFieldOne(JTextField t){

inputNumberOne=t;

}

public void setJTextFieldTwo(JTextField t){

inputNumberTwo=t;

}

public void setJTextArea(JTextArea area){

textShow = area;

}

public void setFuhao(String s){

fuhao=s;

}

public void actionPerformed(ActionEvent e){

try{

double number1=Double.parseDouble(inputNumberOne.getText());

double number2=Double.parseDouble(inputNumberTwo.getText());

double result =0;

if(fuhao.equals("+")){

result=number1+number2;

}

else if(fuhao.equals("-")){

result=number1-number2;

}

else if(fuhao.equals("/")){

result=number1/number2;

}

else if(fuhao.equals("*")){

result=number1*number2;

}

textShow.append(number1+" "+fuhao+" "+number2+" = "+result+"\n");

}

catch(Exception exp){

textShow.append("\n请输入数字字符\n");

}

}

}

运行截图:

计算器java鼠标按钮事件_[java]ItemEvent事件:简单计算器相关推荐

  1. 电脑用java怎么编程,使用java编程从0到1实现一个简单计算器

    学习编程语言最重要的就是实践.很多小伙伴在学习完编程语言后,一直停留在基础阶段,只懂一大堆理论知识,而不懂得实践.那么,今天我们一起来动手做一个小计算器,回顾下学习过的知识,同时这也是很多大学计算机专 ...

  2. java实用教程——组件及事件处理——ItemEvent事件(设置字体类型)

    ItemEvent事件源: 选择框,下拉列表都可以触发ItemEvent事件 注册监视器: 能够触发ItemEvent事件的组件使用addItemListener(ItemListener liste ...

  3. java 基础面试 英文_[Java面试] 面试java基础总结大全

    原标题:[Java面试] 面试java基础总结大全 基础知识: 1.JVM.JRE和JDK的区别: JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性. ...

  4. java 字符串格式替换_[Java] - 格式字符串替换方法

    Java 字符串格式替换方法有两种,一种是使用String.format(...),另一种是使用MessageFormat.format(...) 如下: import java.text.Messa ...

  5. java 内存泄露 书籍_[Java教程]一次艰难的内存泄露排查,BeanUtils 的锅

    [Java教程]一次艰难的内存泄露排查,BeanUtils 的锅 0 2020-10-29 18:24:42 现象 通过jstat -gcutil pid 5000 ,发现fgc次数很多而且频繁,此时 ...

  6. java privatekey输出字符串_[Java教程]根据字符串(String)生成公钥(PublicKey)和私钥(PrivateKey)对象_星空网...

    根据字符串(String)生成公钥(PublicKey)和私钥(PrivateKey)对象 2012-05-29 0 1.字符串生成公钥对象 PublicKey /** * 实例化公钥 * * @re ...

  7. java视、频_[java视频]感人故 事视 频网 站上那找~~~

    感人故 事视 频网 站上那找~~~ 问题补充:感人故 事视 频网 站上那找~~~ ●呵呵,你问对人了,感人故事就去"新浪show",现在是新浪期下的网站,运行稳定,观看流畅,上传简 ...

  8. java 历遍 类_[Java] 遍历指定包名下所有的类(支持jar) | 学步园

    项目需要,仅做记录. 支持包名下的子包名遍历,并使用Annotation(内注)来过滤一些不必要的内部类,提高命中精度. 通过Thread.currentThread().getContextClas ...

  9. java 图片宽高_[Java]获取图片高和宽

    通过javax.imageio.ImageIO类中的read()函数读取的图片,存放在类java.awt.image.BufferedImage类中.调用BufferedImage类中的getWidt ...

最新文章

  1. (笔记)电路设计(十四)之放大器的应用
  2. 纸筒制作机器人_5个万圣节小手工,带孩子一起动手制作,简单又有趣!
  3. pycharm中更新pip版本的问题
  4. 最近,老王又Get了CDN的新技能
  5. 如何在 Linux 中快速地通过 HTTP 提供文件访问服务
  6. 两年不工作、月花200块,90后躺平学大师已有了一批「信徒」
  7. weblogic请求服务端超时后重发一次请求_记一次后端服务偶发502的排错之旅
  8. jQuery实现的简单文字提示效果模拟title
  9. python queue死锁_Python学习【第24篇】:死锁,递归锁,信号量,Event事件,线程Queue...
  10. 查看centos操作系统、java_jdk、hadoop位数
  11. C# Winform SplitContainer组件创建侧边菜单
  12. matlab推挽用的变压器,推挽逆变+全桥整流~~~~逆变器变压器设计
  13. DedeCMS总是提示验证码不正确的解决方法
  14. win10系统pyCharm安装及最新2018激活码
  15. mysql聚集索引与非聚集索引
  16. mysql数据库导出数据乱码问题_Mysql数据库导出来的是乱码如何解决
  17. 多线程实现的四种方式详解
  18. 【三大锁】悲观锁——mysql悲观锁
  19. ECharts修改坐标轴,坐标轴字体,坐标轴网格样式
  20. ART–KOHONEN neural network for fault diagnosis of rotating machinery(翻译)

热门文章

  1. 微信小程序的入门笔记(一)
  2. 微信支付对接流程及注意事项
  3. CodeFun如期而至
  4. vue-router 的总结(导航守卫、组件过渡、组件间参数传输、懒加载)
  5. 蓝桥杯练习——不定方程解法2021.2.23
  6. SAP 消耗型采购科目确定(一)
  7. STM32单片机(二)STM32环境搭建
  8. javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied items in lt;forEachgt
  9. 自制C#版3DS文件的解析器并用SharpGL显示3DS模型
  10. 自助建站系统有什么优势