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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值