ItemEvent事件源:
选择框,下拉列表都可以触发ItemEvent事件
注册监视器:
能够触发ItemEvent事件的组件使用addItemListener(ItemListener listen)
将实现ItemListener的接口的类的实例注册为事件源的监视器
ItemListener接口:
接口中仅有一个方法,public void itemStateChanged(ItemEvent e)
对发生事件做出处理
返回发生ItemEvent的事件源:
getSource();
getItemSelectable();

下面的例子是简单的计算器,实现如下功能
1、用户在窗口中的两个文本框中输入参与运算的两个操作数
2、用户在下拉列表中选择运算符将触发ItemEvent事件,ItemEvent事件的监视器(operatorListener类负责创建)获得运算符,并将运算符传递给ActionEvent事件的监视器computer
3、用户点击按钮触发ActionEvent事件,监视器computer(computerListener类负责创建)给出运算结果

设置字体:
Font font =new Font(“宋体”,Font.BOLD,22);
inputNumberOne.setFont(font);

public class Example9_8 {public static void main(String args[]){WindowOperation win = new WindowOperation();win.setBounds(100,100,390,360);win.setTitle("简单计算器");}}

import java.awt.*;
import javax.swing.*;public class WindowOperation extends JFrame{private static final long serialVersionUID = 3530745896462734297L;JTextField inputNumberOne,inputNumberTwo;//添加两个输入文本框JComboBox<String> choiceFuhao;//下拉列表JTextArea textShow;//文本区JButton button;//按钮OperatorListener operator;//监视itemEventComputerListener computer;//监视ActionEventpublic WindowOperation()//构造函数{init();setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}void init(){setLayout(new FlowLayout());//设置布局Font font =new Font("宋体",Font.BOLD,22);//Font font = new Font("宋体",Font.BOLD,22);inputNumberOne = new JTextField(5);//inputNumberOne.setFont(font);inputNumberTwo = new JTextField(5);//分配空间inputNumberTwo.setFont(font);choiceFuhao = new JComboBox<String>();//重点后面的<>,不能省略choiceFuhao.setFont(font);button = new JButton("计算");button.setFont(font);choiceFuhao.addItem("选择运算符号:");//将后面的字符串添加到下拉列表中去String []a = {"+","-","*","/"};for(int i=0;i<a.length;i++){choiceFuhao.addItem(a[i]);//将后面的字符串添加到下拉列表中去}textShow = new JTextArea(9,30);//textShow.setFont(font);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);this.add(inputNumberOne);this.add(choiceFuhao);this.add(inputNumberTwo);this.add(button);this.add(new JScrollPane(textShow));}}
import java.awt.event.*;
import javax.swing.*;public class OperatorListener implements ItemListener{JComboBox<String> choice;//下拉列表ComputerListener workTogether;//监视器public void setJComboBox(JComboBox<String> box){choice = box;}public void setWorkTogether(ComputerListener computer){workTogether = computer;}public void itemStateChanged(ItemEvent e)//下拉列表后触发该事件{//作用:在复选框中得到符号,并且传递给文本框的监视器String fuhao = choice.getSelectedItem().toString();workTogether.setFuhao(fuhao);}}

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实用教程——组件及事件处理——ItemEvent事件(设置字体类型)相关推荐

  1. java实用教程——组件及事件处理——ActionEvent事件

    事件源: 文本框,按钮,菜单项,密码框,单选按钮 注册监视器: 能够触发ActionEvent事件的组件使用方法 addActionListener(ActionListener listener) ...

  2. java实用教程——组件及事件处理——MouseEvent事件

    MouseEvent事件 任何组件上都可以发生鼠标事件,如鼠标进入组件.退出组件.在组件上方单击鼠标.拖动鼠标等都触发鼠标事件,即导致MouseEvent类自动创建一个 事件对象,事件源注册监视器的方 ...

  3. java实用教程——组件及事件处理——DocumentEvent事件

    DocumentEvent事件源: 文本区Document的维护 注册监视器: 使用addDocumentListener(DocumentListener listen)为事件源添加监视器 Docu ...

  4. java实用教程——组件及事件处理——对话框(消息对话框,输入对话框,确认对话框)

    消息对话框:(这个对话框提供一些信息) 无模式:可多线程的执行 有模式:用户必须处理这个一个对话框.必须解决这个问题后才可以继续相处下去 对话框分为无模式和有模式两种.如果一个对话框 是有模式的对话框 ...

  5. java实用教程——组件及事件处理——对话框(dialog)

    对话框: import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import java.awt.*; impo ...

  6. java实用教程——组件及事件处理——布局的一个小实例

    import javax.swing.*; import java.awt.*;public class BasicComponentDemo {Frame frame = new Frame(&qu ...

  7. java实用教程——组件及事件处理——布局管理(五种)

    1.流式布局FlowLayout public void pack()调整此窗口的大小,以适合其子组件的首选大小和布局.如果该窗口或其所有者仍不可显示,则两者在计算首选大小之前变得可显示.在计算首选大 ...

  8. java实用教程——组件及事件处理——设置组件的位置(相对于窗口具体位置和布局)

    1: 相对于窗口的具体位置 关键点: JButton组件添加到JPanel时,如果想自己位置,需要对JPanel进行如下设置,才能自定义按钮位置 需要将组件添加到画板上去,才可以设置组件的相对具体位置 ...

  9. java实用教程——组件及事件处理——对话框(颜色对话框,自定义对话框)

    颜色对话框: 可以用javax.swing包中的JColorChooser类的静态方法 public staticColorshowDialog (Component component, Strin ...

最新文章

  1. 单点登录与权限管理本质:session和cookie介绍
  2. 微信支付-接收返回通知结果
  3. 第 3 章 镜像 - 014 - 镜像的缓存特性
  4. linux cat 命令详解
  5. vue --- vue中的几个钩子属性
  6. IIS作为ASP.NET Core2.1 反向代理服务器未说的秘密
  7. jQuery的创建对象,动态添加、修改、删除属性和方法
  8. json规范及转义字符
  9. 一个简单的EXCEL 导入SQL 的例子
  10. 使用iMazing为iPad添加PDF文档
  11. application等对象的使用及监听器过滤器
  12. 【Windows10】C盘快速扩容小妙招
  13. 二手车数据挖掘- 数据分析
  14. Ubuntu下mysql远程连接失败MySQL said: Can't connect to MySQL server on 'XXXXXX' (61)
  15. Qt实现简单拼图游戏
  16. python下载安装教程电脑版,python下载好了怎么使用
  17. Learning to See in the Dark
  18. 【asp.net小札记】Repeater自定义添加排序按钮+显示图片
  19. 一步步教你破解Termius(针对Termius持续更新导致失效解决,提供7.22.1老版本termius)|CSDN创作打卡
  20. 电商商品分类EXCEL(仅供参考)

热门文章

  1. Debugging into .NET Core源代码的两种方式
  2. VSCode 插件开发实例(WebView):微信读书 ^-^边撸代码边看小说^-^
  3. C#趣味程序----分数之和
  4. Flutter之基本数据类型测试
  5. 【C语言简单说】十:小结
  6. 衡量计算机浮点数操作性能,计算机系统基础:计算机性能评价知识笔记
  7. 王道408数据结构——第二章 线性表
  8. 凌动服务器系列,凌动也能造服务器?超微又出怪异新品
  9. vue2 怎么用vite_vue3vite简介
  10. mysql workbench_爬虫实例:玩转mysql(预备篇)