Java ItemEvent事件/总线的基本概念/中央处理单元

Java ItemEvent事件

  • ItemEvent事件源
    复选框/下拉列表都可以触发ItemEvent事件 //复选框提供了两种状态,选中和未选中,对于下拉列表,当用户选择了其中的某一项就会触发

  • 注册监视器
    addItemListener(ItemListener listen)//能触发的组件添加监视器的方法

  • ItemListener接口
    public void itemStateChanged(ItemEvent e)//Java提供的单接口

简单计算机的例子

首先创建JFrame的子类

import javax.swing.*;
import java.awt.*;

public class myWindow extends JFrame {
    itemListener itemListener;  //项目监视器(实现了ItemListener接口的类的变量)
    actionListener actionListener;  //按钮监视器(实现ActionListner接口的类的变量)
    JTextField jTextField1,jTextField2; //两个文本输入框
    JComboBox<String> jComboBox;    //选择框
    JButton jButton;    //确认按钮
    JTextArea jTextArea;    //文本显示区域
    myWindow(){ //构造函数
        setTitle("简单计算器");  //设置标题
        setBounds(300,300,500,400); //设置大小
        init();
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
    }
    public void init(){
        setLayout(new FlowLayout());	//(值得注意的问题!!!!)
        Container con = this.getContentPane();
        con.setBackground(new Color(0x366728)); //设置当前窗口的背景颜色颜色
        jTextField1 = new JTextField(10);
        jTextField2 = new JTextField(10);
        jComboBox = new JComboBox<String>();
        String a [] = {"请选择运算符","+","-","*","/"};   //创建一个字符串数组
        for (int i = 0; i <a.length ; i++) {    //添加选项
            jComboBox.addItem(a[i]);
        }
        jButton = new JButton("确定");
        jTextArea = new JTextArea(10,40);
        actionListener = new actionListener();  //监视器实例化(值得注意的问题)
        itemListener = new itemListener();  //监视器实例化(值得注意的问题)
        actionListener.setView(this);   //将当前窗口的引用传给监视器(值得注意的问题)
        itemListener.setView(this);   //将当前窗口的引用传给监视器(值得注意的问题)
        jButton.addActionListener(actionListener);
        jComboBox.addItemListener(itemListener);
        add(jTextField1);
        add(jComboBox);
        add(jTextField2);
        add(jButton);
        add(jTextArea);
        add(new JScrollPane(jTextArea));    //设置有滑动
    }
}

然后创建实现了ItemListener接口的类

import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

public class itemListener implements ItemListener {
    myWindow view;
    public void setView(myWindow view) {    //关键是设置需要监视的对象
        this.view = view;
    }
    @Override
    public void itemStateChanged(ItemEvent itemEvent) {
        String symbol = view.jComboBox.getSelectedItem().toString(); // 获取选项框选中的字符串
        view.actionListener.setSymbol(symbol);
    }
}

创建实现ActionListner接口的类

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class actionListener implements ActionListener {
    myWindow view;
    String symbol;
    public void setView(myWindow view) {    //关键
        this.view = view;
    }
    public void setSymbol(String symbol){
        this.symbol = symbol;
    }
    @Override
    public void actionPerformed(ActionEvent actionEvent) {
        try{
            double number1 = Double.parseDouble(view.jTextField1.getText());    //将框一的字符串转为数字
            double number2 = Double.parseDouble(view.jTextField2.getText());    //将框二的字符串转为数字
            double result = 0;
            boolean isShow = true;
            if(symbol.equals("+")){
                result = number1 + number2;
            }else if(symbol.equals("-")){
                result = number1 - number2;
            }else if(symbol.equals("*")){
                result = number1 * number2;
            }else if(symbol.equals("/")){
                result = number1 / number2;
            }
            else{
                isShow = false;
            }
            if (isShow) {
                view.jTextArea.append(number1 + " " + symbol + " " + number2 + "=" + result +"\n"); //最后一个是换行符
            }
        }
        catch (Exception e){
            view.jTextArea.append("\n请输入数字\n");
        }
    }
}

最后进行测试

public class Example10_7 {
    public static void main(String[] args) {
        myWindow myWindow = new myWindow();
    }
}

运行效果图
在这里插入图片描述

代码途中的几个问题

  1. 要注意设置窗口的布局否则无法显示
  2. 注意要将实现接口的类进行实例化,并且调用接口里面设置要当前对象的方法
  3. 最后是不要粗心大意写错,写漏

总线的基本概念

总线的定义和分类

什么是总线?//总线是连接多个设备的传输通道,是一组信号线,可以分好几类

  • 芯片内总线 //用于集成芯片内部各部分的连接
  • 元件级总线 //用于一块电路板内元器件的连接
  • 内总线(又称为系统总线) //用于计算机各组成部分间的连接
  • 外总线(又称为通信总线) //用于计算机与外设之间的连接或通信

系统总线

系统总线是计算机最为重要总线,系统总线按照传递信息和功能还可分为,地址总线,数据总线,控制总线

系统总线的性能指标

  • 带宽//单位时间内在总线上传送的数据量
  • 位宽//总线能同时传送二进制数据的位数,也就是32位和64位的概念(越宽越快,)
  • 工作频率//总线工作速度的快慢

常见的系统总线

  • ISA总线//工业标准结构总线(Industry Standard Architecture)数据线16,地址线24
  • EISA总线//扩展工业标准结构总线(Extended Industry Standard Architecture数据线32
  • PCI总线//外部控制器接口(Peripheral Component Interconnect)目前微型机上广泛采用的内总线,有两种标准
    32位机,124个信号
    64位机,188个信号
  • PCI Express总线//采用点对点串行连接,每个设备都有自己的专用连接,能提供更高的传输速率和质量
  • AGP//加速图形端口(能够使3D图形在普通个人电脑上以更快的速度显示)(Accelerated Graphics Port)

外总线
外总线有非常多种

  • USB//通用串行总线(Universal Serial Bus)

中央处理单元

中央处理单元就是我们日常所称的CPU//中央处理单元(Central Processing Unit)
首先要了解CPU的基本功能有哪些

CPU的基本功能

  • 指令控制//通过执行指令来控制程序的执行顺序
  • 操作控制//一条指令功能的实现需要若干个操作信号来完成,将操作信号送往不同的部件,然后控制相应部件的操作
  • 时序控制//CPU通过时序电路产生的时钟信号进行定时,可以控制各种操作按指定时序执行
  • 数据处理//对数据的加工和处理是最根本的任务

HTML

HTML 统一资源定位器

CSS

CSS背景
CSS文本

JavaScript

JavaScript this关键词
JavaScript let关键词
JavaScript const关键字

CET4P160

geometry
triumph
obvious
rib
butcher
basis
contact
eyesight
interview
maid
guarantee

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值