鼠标接口

AWT事件处理

不想你离开。 提交于 2020-02-19 13:57:22
AWT事件处理基本概念 AWT事件处理过程中,主要涉及3类对象: ① Event(事件) :用户对组件的一个操作,称之为一个事件,以类的形式出现,例如,键盘操作对应的事件类是KeyEvent。其实例在该事件发生时由系统自动产生。每一种事件都对应专门的监听者。 ② Event Source(事件源 ):事件发生的场所,通常就是各个组件,例如按钮Button。 ③ Event Monitor(事件监听器) :接收事件对象并对其进行处理的类的对象,通常其中某个成员方法对事件进行相应的处理。 注:Java采取了事件委托处理模型,事件源自己不处理事件,而是把其自身所有可能发生的事件委托给事件监听器来处理。 事件: AWT的相关事件继承于java.awt.AWTEvent类,这些事件分为两大类:低级事件和高级事件。 低级事件是值基于组件和容器的事件,当一个组件发生事件,如鼠标进入、点击、拖放或组件的窗口开关等时,触发了组件事件。 ComponentEvent 组件事件:组件尺寸的变化、移动 ContainerEvent 容器事件:组件增加、移动 WindowEvent 窗口事件:关闭窗口、窗口闭合、图标化 FocusEvent 焦点事件:焦点的获得和丢失 KeyEvent 键盘事件:键按下、释放 MouseEvent 鼠标事件:鼠标单击、移动 高级事件是基于语义的事件

《C# GDI+ 破境之道》:第一境 GDI+基础 —— 第一节:画直线

痞子三分冷 提交于 2020-02-19 13:41:43
今天正式开一本新书,《C# GDI+ 破镜之道》,同样是破镜之道系列丛书的一分子。 关于GDI+呢,官方的解释是这样的: GDI+ 是 Microsoft Windows 操作系统的窗体子系统应用程序编程接口 (API)。 GDI+ 是负责在屏幕和打印机上显示的信息。 顾名思义,GDI+ 是包含 GDI 与早期版本的 Windows 图形设备接口的后续版本。 好,两个关键信息: 窗体子系统应用的编程接口 图形设备接口 充分说明了GDI+的应用场景与用途。需要了解更多呢,就去查阅一下吧。 本书的开始,不打算去解释一些枯燥的概念,比如什么是Graphics、Brush、Pen甚至是Color;第一境毕竟是基础,我打算先带大家玩儿,等玩儿开了、玩儿嗨了,咱们再来总结这些概念,就会相当好理解了。咱们就先从最基本的画元素开始吧:) 本节,主要是说道一下如何使用GDI+画直线。体育老师说了,两点确定一条直线,那么,画直线的关键呢,就是确定两个点了。音乐老师也说了,直线呢,是向两边无限延长的,木有尽头。那我们还是别挑战无极限了,所以,咱们在这里说的画直线呢,其实是画线段。 这是我建立的一个简单的WinForm窗体(FormDrawLines)。 摆了几个按钮,用来绘制各种不同的线条以及展示不同线条的特性。 两个辅助按钮,用来切换线条的颜色和窗体是否使用双缓冲。 1 using System; 2

《C# GDI+ 破境之道》:第一境 GDI+基础 —— 第一节:画直线

情到浓时终转凉″ 提交于 2020-02-19 10:49:50
今天正式开一本新书,《C# GDI+ 破镜之道》,同样是破镜之道系列丛书的一分子。 关于GDI+呢,官方的解释是这样的: GDI+ 是 Microsoft Windows 操作系统的窗体子系统应用程序编程接口 (API)。 GDI+ 是负责在屏幕和打印机上显示的信息。 顾名思义,GDI+ 是包含 GDI 与早期版本的 Windows 图形设备接口的后续版本。 好,两个关键信息: 窗体子系统应用的编程接口 图形设备接口 充分说明了GDI+的应用场景与用途。需要了解更多呢,就去查阅一下吧。 本书的开始,不打算去解释一些枯燥的概念,比如什么是Graphics、Brush、Pen甚至是Color;第一境毕竟是基础,我打算先带大家玩儿,等玩儿开了、玩儿嗨了,咱们再来总结这些概念,就会相当好理解了。咱们就先从最基本的画元素开始吧:) 本节,主要是说道一下如何使用GDI+画直线。体育老师说了,两点确定一条直线,那么,画直线的关键呢,就是确定两个点了。音乐老师也说了,直线呢,是向两边无限延长的,木有尽头。那我们还是别挑战无极限了,所以,咱们在这里说的画直线呢,其实是画线段。 这是我建立的一个简单的WinForm窗体(FormDrawLines)。 摆了几个按钮,用来绘制各种不同的线条以及展示不同线条的特性。 两个辅助按钮,用来切换线条的颜色和窗体是否使用双缓冲。 1 using System; 2

[分享]牛牛截图控件最终版

自古美人都是妖i 提交于 2020-02-10 13:09:35
实现牛牛截图控件的初衷,是想在学习的同时,实现一个具备当前主流截图功能的插件,方便集成进不同的应用系统中,节省开发时间。 一直以来,都对目前各主流即时通讯软件的截图效果比较喜欢,前段时间专门花时间进行了一些研究,实现了自己的一个截图控件,我给它取名叫“牛牛截图”;此控件可免费使用,开放了调用的接口,有兴趣的朋友可以试一下,具体的调用方法及使用示例见下文。 1. 本控件实现的基本功能及特点如下 1). 支持窗口区域的自动识别 2). 支持矩形、圆形、箭头、文字的绘制以及撤销 3). 可另存为png、jpg、bmp等格式 4). 支持鼠标所在区域的图像放大功能,以便精准定位 5). 窗口大小、鼠标坐标显示以及光标处的颜色拾取 6). 采用C++语言开发的Win32动态库,大小为260KB 7). 支持XP、WIN7、WIN8及WIN2003、WIN2008等操作系统; 8). 此控件提供标准的接口,方便集成进其他软件中; 例如可以与浏览器控件整合,实现Web页面截图的功能,也可以与其他如即时通讯等其他任何系统中 先看看使用效果: 2. 控件使用方法 1). 在测试程序中点击启动截图[在集成此控件后,可以自行通过热键进行启动],按下鼠标左键并拖动,以确定需要截图的范围,也可以直接在自动识别到的窗口上点击一下鼠标左键,确定截图范围;此时可以通过放大的区域来精确定位截图区域。 2).

设计模式--抽象工厂模式

蹲街弑〆低调 提交于 2020-02-09 18:12:28
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 抽象工厂示例: 假设我们需要两种产品,分别是鼠标和键盘,鼠标由鼠标厂生产,键盘由键盘厂生产。工厂为两个品牌提供代工,分别是戴尔和惠普。如下: 首先创建两个接口,分别是Mouse接口和Keyboard接口,表示鼠标和键盘两个类族。 package AbstractFactory; public interface Keyboard { public void print(); } package AbstractFactory; public interface Mouse { public void print(); } 然后创建产品类:产品为戴尔鼠标、戴尔键盘、惠普鼠标、惠普键盘 package AbstractFactory; public class HPKeyboard implements Keyboard { public void print(){ System.out.println("惠普键盘"); } } package AbstractFactory;

python day22

有些话、适合烂在心里 提交于 2020-02-09 01:02:56
今日内容: 封装: 什么是封装? 将复杂的丑陋的, 隐私的细节隐藏到内部,对外提供简单的使用接口 对外隐藏内部实现细节,并提供访问的接口 为什么要封装? 两个 目的 : 1.为了保证关键数据的安全性 2.对外隐藏实现细节,隔离复杂度 什么时候应该封装? 当有一些 数据 不希望外界可以直接修改时 当有一些 函数 不希望给外界使用时 如何使用(语法): # 封装的基本使用 class Person: def __init__(self,id_number,name,age): self.__id_number = id_number self.name = name self.age = age def show_id(self): print(self.__id_number) p = Person('111111','jack',20) p.id_number = '222222' print(p.__id_number) # 222222 被封装的内容的特点: 1.外界不能直接访问 2.内部依然可以使用 权限: 定义: 学习了封装后就可以控制属性的权限 在python只有两种权限: 1.公开的,默认就是公开的 2.私有的,只能由当前类自己使用 在外界访问私有的内容: 属性虽然被封装了,但是还是需要使用的 在外界可以通过定义方法类完成对私有属性的修改和访问 # 封装方法 class

java设计模式----工厂模式

吃可爱长大的小学妹 提交于 2020-02-07 17:53:46
简单工厂模式 简单工厂模式不是 23 种里的一种,简而言之,就是有一个专门生产某个产品的类。 比如下图中的鼠标工厂,专业生产鼠标,给参数 0,生产戴尔鼠标,给参数 1,生产惠普鼠标。 工厂模式 工厂模式也就是鼠标工厂是个父类,有生产鼠标这个接口。 戴尔鼠标工厂,惠普鼠标工厂继承它,可以分别生产戴尔鼠标,惠普鼠标。 生产哪种鼠标不再由参数决定,而是创建鼠标工厂时,由戴尔鼠标工厂创建。 后续直接调用 鼠标工厂.生产鼠标()即可 抽象工厂模式 抽象工厂模式也就是不仅生产鼠标,同时生产键盘。 也就是 PC 厂商是个父类,有生产鼠标,生产键盘两个接口。 戴尔工厂,惠普工厂继承它,可以分别生产戴尔鼠标+戴尔键盘,和惠普鼠标+惠普键盘。 创建工厂时,由戴尔工厂创建。 后续 工厂.生产鼠标()则生产戴尔鼠标, 工厂.生产键盘()则生产戴尔键盘。 在抽象工厂模式中,假设我们需要增加一个工厂 假设我们增加华硕工厂,则我们需要增加华硕工厂,和戴尔工厂一样,继承 PC 厂商。 之后创建华硕鼠标,继承鼠标类。创建华硕键盘,继承键盘类即可。 在抽象工厂模式中,假设我们需要增加一个产品 假设我们增加耳麦这个产品,则首先我们需要增加耳麦这个父类,再加上戴尔耳麦,惠普耳麦这两个子类。 之后在PC厂商这个父类中,增加生产耳麦的接口。最后在戴尔工厂,惠普工厂这两个类中,分别实现生产戴尔耳麦,惠普耳麦的功能。 以上。

工厂模式

自作多情 提交于 2020-02-07 17:53:08
工厂模式 意图: 定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 需要解决的问题: 主要解决接口选择的问题。 何时使用: 我们明确地计划不同条件下创建不同实例时。 如何解决: 让其子类实现工厂接口,返回的也是一个抽象的产品。 关键代码: 创建过程在其子类执行。 简单工厂模式 简单工厂模式不是 23 种里的一种,简而言之,就是有一个专门生产某个产品的类。 比如下图中的鼠标工厂,专业生产鼠标,给参数 0,生产戴尔鼠标,给参数 1,生产惠普鼠标。 工厂模式 工厂模式也就是鼠标工厂是个父类,有生产鼠标这个接口。 戴尔鼠标工厂,惠普鼠标工厂继承它,可以分别生产戴尔鼠标,惠普鼠标。 生产哪种鼠标不再由参数决定,而是创建鼠标工厂时,由戴尔鼠标工厂创建。 后续直接调用 鼠标工厂.生产鼠标()即可 抽象工厂模式 抽象工厂模式也就是不仅生产鼠标,同时生产键盘。 也就是 PC 厂商是个父类,有生产鼠标,生产键盘两个接口。 戴尔工厂,惠普工厂继承它,可以分别生产戴尔鼠标+戴尔键盘,和惠普鼠标+惠普键盘。 创建工厂时,由戴尔工厂创建。 后续 工厂.生产鼠标()则生产戴尔鼠标, 工厂.生产键盘()则生产戴尔键盘。 设计时将Mouce 和 Keybo设计成接口,不同厂家的鼠标和键盘设计成实现。 假设我们增加耳麦这个产品,则首先我们需要增加耳麦这个父类

PowerDesigner 使用教程(很具体,很实用)

柔情痞子 提交于 2020-02-06 03:17:39
原文地址为: PowerDesigner 使用教程(很具体,很实用) 1、 PowerDesigner 使用教程 从今日开始,每天一部分内容,在每个工作日,争取让大家天天都有的看,每天内容不会太多。 有错误的地方还请大家指正。 PowerDesigner简介   PowerDesigner是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制。它可与许多流行的数据库设计软件,例如:PowerBuilder,Delphi,VB等相配合使用来缩短开发时间和使系统设计更优化。 PowerDesigner主要包括以下几个功能部分:   (1) DataArchitect 这是一个强大的数据库设计工具,使用DataArchitect可利用实体-关系图为一个信息系统创建"概念数据模型"-CDM(Conceptual Data Model)。并且可根据CDM产生基于某一特定数据库管理系统(例如:Sybase System 11)的"物理数据模型"-PDM(Physical Data Model)。还可优化PDM

Hid Report Descriptor

馋奶兔 提交于 2020-01-29 09:43:26
  在USB中,USB HOST是通过各种描述符来识别设备的,有设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符,报告描述符等等。USB报告描述符(Report Descriptor)是HID设备中的一个描述符,它是比较复杂的一个描述符。      USB HID设备是通过报告来给传送数据的,报告有输入报告和输出报告。输入报告是USB设备发送给主机的,例如USB鼠标将鼠标移动和鼠标点击等信息返回给电脑,键盘将按键数据数据返回给电脑等;输出报告是主机发送给USB设备的,例如键盘上的数字键盘锁定灯和大写字母锁定灯等。报告是一个数据包,里面包含的是所要传送的数据。输入报告是通过中断输入端点输入的,而输出报告有点区别,当没有中断输出端点时,可以通过控制输出端点0发送,当有中断输出端点时,通过中断输出端点发出。   而报告描述符,是描述一个报告以及报告里面的数据是用来干什么用的。通过它,USB HOST可以分析出报告里面的数据所表示的意思。它通过控制输入端点0返回,主机使用获取报告描述符命令来获取报告描述符,注意这个请求 发送到接口的,而不是到设备。一个报告描述符可以描述多个报告,不同的报告通过报告ID来识别,报告ID在报告最前面,即第一个字节。当报告描述符中没有规定报告ID时,报告中就没有ID字段,开始就是数据。更详细的说明请参看USB HID协议,该协议可从Http:/