鼠标接口

第十三周课程总结

自闭症网瘾萝莉.ら 提交于 2019-12-05 06:26:46
第十三周课程总结 事件处理。 事件类的继承关系。 事件处理流程。 窗口事件。 windowOpened void windowOpened(WindowEvent e) 窗口首次变为可见时调用。 windowClosing void windowClosing(WindowEvent e) 用户试图从窗口的系统菜单中关闭窗口时调用。 windowClosed void windowClosed(WindowEvent e) 因对窗口调用 dispose 而将其关闭时调用。 windowIconified void windowIconified(WindowEvent e) 窗口从正常状态变为最小化状态时调用。对于很多平台而言,已最小化的窗口将显示为窗口 iconImage 属性中所指定的图标。 windowDeiconified void windowDeiconified(WindowEvent e) 窗口从最小化状态变为正常状态时调用。 windowActivated void windowActivated(WindowEvent e) 将 Window 设置为活动 Window 时调用。只有框架或对话框可以成为活动 Window。本机的窗口系统可能使用特殊装饰表示活动 Window 或其子窗口,如高亮显示标题栏。活动 Window 要么是聚焦 Window,要么是作为聚焦

计算机图形学——人机交互绘图技术

江枫思渺然 提交于 2019-12-03 23:56:56
人机交互(Human-Computer Interaction)是指用户与计算机系统之间的通信 ,它是人与计算机之间各种符号和动作的双向信息交换。这里“交互”定义为一种通信,即信息交换,并且是一种双向信息交换,可由人向计算机输入信息,也可由计算机向用户反馈信息。 HCI人机交互技术的来源: 一、基本的图形输入设备 为了使图形软件包具有通用性,图形输入命令不涉及具体的输入设备,只涉及该命令所需要的数据。根据输入信息的不同性质,图形核心系统GKS和三维图形系统PHIGS把输入设备在逻辑上分成以下几类: 1、定位设备 定位设备(Locator)用于 指定用户空间的一个位置 ,如指定一个圆的圆心,或确定一条直线的两个端点。 其输入方式包括 直接或间接 在屏幕上输入、设置数值坐标等。 直接输入设备:光笔、触摸屏 直接输入设备可以直接在屏幕上定位 纯机械鼠标 工作的原理很简单,它采用一个小滚球和桌面接触,当滚球移动的时候,滚球推动压力滚轴滚动,滚轴的另一边连着编码器,在每个编码器上呈圆形排列的触点。当滚球滚动时,经过传导,使触点会依次碰到接触条,从而产生计算机容易辨认的 “接通”和“断开”,即“0”和“1”信号。通常鼠标内部有一个芯片会根据这些数据转换成“X”和“Y”轴的位移,从而使光标移动。 机械光电鼠标 : 1.接触桌面的一个内置的球,当鼠标移动时跟着一块滚动。 2.接触球的两个滑轮

Java五子棋手把手教你写

狂风中的少年 提交于 2019-12-03 11:32:27
五子棋手把手教你写: 写在前面的话: 回想起从前初学代码的五子棋简直写的不像样子。今天闲来无事就写了个五子棋的小程序。 一来呢回忆一下很久以前写代码时的感觉。 二来呢顺便帮下诸位有需求的学生,顺利的Ctrl+C。 五子棋的运行效果如下。 开发环境: 这个小程序是基于Java实现的。因此呢需要提前安装JDK环境。(老油条忽略此条信息) 开发环境jdk1.8 + eclipse eclipse 目录结构如下所示 棋盘数据结构核心: 无论你做数据库开发还是做一些小程序,第一时间考虑的必须是需求+建模。把核心设计出来。 此次我们用一个二维数组作为棋盘,每条线交叉的地方设为二维数组的值,并约定: 0=空 1=白棋 2=黑棋 然后对应的把下棋,悔棋,判断输赢(横竖斜)和清盘的算法都实现出来。 具体展现如下: 悔棋时候我们需要用一个栈来保存我们之前下棋的信息: /** * 在该位置下棋 1:white 2:black * @param x 横坐标 * @param y 纵坐标 * @param var 棋子种类 * @return 1:white 赢 2:black赢 */ public int ChessIt(int x,int y,int var) { if(__CanInput(x,y)) { core[x][y] =var; Chess chess = new Chess(x,y);

Java 接口和多态练习

↘锁芯ラ 提交于 2019-12-03 07:40:27
我们鼠标和键盘实现USB接口,那么我们鼠标和键盘就变成了USB设备,这时候我们就可以把它放到笔记本电脑里面去用 1 package com.biggw.day10.demo07; 2 3 /** 4 * @author gw 5 * @date 2019/11/2 0002 下午 16:46 6 */ 7 public class Computer { 8 public void open() { 9 System.out.println("打开电脑!"); 10 } 11 12 public void close() { 13 System.out.println("关闭电脑!"); 14 } 15 16 public void useDevice(Usb usb) { 17 if (usb instanceof KeyBorad) { 18 KeyBorad keyBorad = (KeyBorad) usb; 19 keyBorad.open(); 20 keyBorad.type(); 21 keyBorad.close(); 22 } else if (usb instanceof Mouse) { 23 Mouse mouse = (Mouse) usb; 24 mouse.open(); 25 mouse.click(); 26 mouse.close(); 27 }

设计模式之工厂模式

浪尽此生 提交于 2019-12-03 01:38:04
下面例子中鼠标,键盘,耳麦为产品,惠普,戴尔为工厂。 简单工厂模式 简单工厂模式不是 23 种里的一种,简而言之,就是有一个专门生产某个产品的类。 比如下图中的鼠标工厂,专业生产鼠标,给参数 0,生产戴尔鼠标,给参数 1,生产惠普鼠标。 工厂模式 工厂模式也就是鼠标工厂是个父类,有生产鼠标这个接口。 戴尔鼠标工厂,惠普鼠标工厂继承它,可以分别生产戴尔鼠标,惠普鼠标。 生产哪种鼠标不再由参数决定,而是创建鼠标工厂时,由戴尔鼠标工厂创建。 后续直接调用 鼠标工厂.生产鼠标()即可 抽象工厂模式 抽象工厂模式也就是不仅生产鼠标,同时生产键盘。 也就是 PC 厂商是个父类,有生产鼠标,生产键盘两个接口。 戴尔工厂,惠普工厂继承它,可以分别生产戴尔鼠标+戴尔键盘,和惠普鼠标+惠普键盘。 创建工厂时,由戴尔工厂创建。 后续 工厂.生产鼠标()则生产戴尔鼠标, 工厂.生产键盘()则生产戴尔键盘。 在抽象工厂模式中,假设我们需要增加一个工厂 假设我们增加华硕工厂,则我们需要增加华硕工厂,和戴尔工厂一样,继承 PC 厂商。 之后创建华硕鼠标,继承鼠标类。创建华硕键盘,继承键盘类即可。 在抽象工厂模式中,假设我们需要增加一个产品 假设我们增加耳麦这个产品,则首先我们需要增加耳麦这个父类,再加上戴尔耳麦,惠普耳麦这两个子类。 之后在PC厂商这个父类中,增加生产耳麦的接口。最后在戴尔工厂

Windows鼠标键盘(PS2)驱动框架

匿名 (未验证) 提交于 2019-12-03 00:19:01
常用的鼠标类型:串口鼠标、PS/2鼠标、USB鼠标(HID) 常用的键盘类型:串口键盘、PS/2鼠标、USB键盘(HID) 非HID鼠标键盘(PS/2鼠标键盘) 物理配置方式 上图左边展示了键盘鼠标设备通过独立的控制器连接到系统总线。一种典型的配置由通过i8042控制器操作的PS/2类型键盘,和通过串口操作的串口鼠标组成。 上图右边展示了键盘鼠标设备通过集成的键盘鼠标控制器连接到系统总线。一种典型的配置由通过i8042控制器操作的PS/2类型键盘和鼠标组成。 Windows支持同时连接多个键盘和鼠标设备。然而Windows不支持通过单独的客户端访问每个设备。Win32子系统以独占方式打开所有的键盘和鼠标设备。 非HID鼠标键盘标准配置 2.键盘鼠标的设备对象结构 上图描述了即插即用PS/2鼠标键盘的设备对象结构。类驱动创建上层类过滤设备对象,并通过可选的设备过滤对象附加到下层功能设备对象。上层设备过滤驱动创建上层设备过滤设备对象。I8042prt创建功能设备对象,并附加到总线驱动创建的物理设备对象。 上图描述了即插即用串口鼠标键盘的设备对象结构 上图描述了传统鼠标键盘的设备对象结构 3.多个键盘鼠标的设备对象结构 Kbdclass和Mouclass支持以两种不同方式管理多个鼠标键盘设备。 ① one-to-one模式 在一对一(one-to-one)模式中

【java基础】第11天――接口、多态

匿名 (未验证) 提交于 2019-12-02 21:53:52
今日内容介绍 1、接口 2、多态 =======================第一节课开始============================================= * A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”。 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成。这样将功能的定义与实现分离,优化了程序设计。 请记住:一切事物均有功能,即一切事物均有接口。 * A: 接口的定义 与定义类的class不同,接口定义时需要使用interface关键字。 定义接口所在的仍为.java文件,虽然声明时使用的为interface关键字的编译后仍然会产生.class文件。这点可以让我们将接口看做是一种只包含了功能声明的特殊类。 * B : 定义格式 public interface 接口名 { 抽象方法1; 抽象方法2; 抽象方法3; } * C: 定义步骤 使用interface代替了原来的class,其他步骤与定义类相同: 接口中的方法均为公共访问的抽象方法 接口中无法定义普通的成员变量 * A: 类与接口的关系 类与接口的关系为实现关系,即类实现接口。实现的动作类似继承,只是关键字不同,实现使用implements。 其他类(实现类)实现接口后,就相当于声明:

cesium的鼠标事件(最基础的显示鼠标位置坐标)

纵饮孤独 提交于 2019-12-02 09:21:07
一、cesium屏幕空间事件控制者接口:ScreenSpaceEventHandler(参数canvas) #var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas); 创建了一个屏幕控制,控制cesium的canvas #调用setInputAction,从英文上就能看出这是设置输入行为 handler.setInputAction(function(x){y},事件类型 ScreenSpaceEventType ); 这里注意:移动是movement,移动终点的位置是movement.endPosition;点击是click,点击的位置是click.position //鼠标移动的事件 handler.setInputAction(function(movement){  //获取鼠标位置,camera.pickEllipsoid()返回一个cartesian类型位置 let click_position = viewer.scene.camera.pickEllipsoid(movement.endPosition,my_ellipsoid);  //位置数据转换只地理数据类型 let carto_position = my_ellipsoid.cartesianToCartographic

多态---相关操作

為{幸葍}努か 提交于 2019-12-02 09:20:00
多态—相关操作 基本格式与使用 Zi类 package cn . xiaoge . day10 . demo04 ; public class Zi extends Fu { @Override public void method ( ) { System . out . println ( "子类方法" ) ; } } Fu类 package cn . xiaoge . day10 . demo04 ; public class Fu { public void method ( ) { System . out . println ( "父类方法" ) ; } public void methodFu ( ) { System . out . println ( "父类特有方法" ) ; } } 执行路口 package cn . xiaoge . day10 . demo04 ; /* 代码当中体现多态性, 其实就是一句话: 父类引用指向子类对象. 格式: 父类名称 对象名 = new 子类名称(); 或者: 接口名称 对象名 = new 实现类名称(); */ public class Demo01Multi { public static void main ( String [ ] args ) { // 使用多态的写法 // 左侧父类的引用, 指向了右侧子类的对象

《驱动学习 - USB鼠标驱动》

好久不见. 提交于 2019-12-01 12:25:23
参考/drivers/hid/usbhid/usbmouse.c(内核自带的USB鼠标驱动) 1.本节需要用到的宏如下: struct usb_device_id usbmouse_id_table []=USB_INTERFACE_INFO(cl,sc,pr);   USB_INTERFACE_INFO()设置usb_driver驱动的id_table成员。 cl:接口类,我们USB鼠标为HID类,所以填入0X03,也就是USB_INTERFACE_CLASS_HID sc:接口子类为启动设备,填入USB_INTERFACE_SUBCLASS_BOOT pr:接口协议为鼠标协议,填入USB_INTERFACE_PROTOCOL_MOUSE struct usb_device *dev=interface_to_usbdev(intf);   通过usb_ interface接口获取usb_device设备,为后面设置USB数据传输用。 pipe=usb_rcvintpipe(dev,endpoint); 创建一个接收(rcv)中断(int)类型的端点管道(pipe),用来端点和数据缓冲区之间的连接,鼠标为接收中断型 dev: usb_device设备结构体 endpoint:为端点描述符的成员endpoint->bEndpointAddress //端点地址