PIZiadas图形

PIZiadas图形

我的世界是英寸.

图形化编程: 相互作用 : 鼠标事件 [JAVA]

mouseEvent 创建基本的图形用户界面动画引擎, 将鼠标事件模型引入互动的雏形.

该技术将产生一个事件或发生每次用鼠标交互. 通过我们的软件模块之一,此事件将被捕获, 处理并产生一些动作.

第一步是了解这些事件是如何产生和, 后来, 加入更多复杂的动作. 现在它足以确定所发生的事件的类型,以及我们所作出的屏幕上的位置.

事件驱动编程 是一个 编程范式 在这两种结构和方案的实施是由该系统中发生的事件来确定, 用户定义的,或者它们会导致.

为了解事件驱动编程, 我们反对它究竟是不是: 而在顺序编程 (在 结构化) 是谁定义会有怎样的程序流程的程序员, 在事件驱动编程将是用户自己或任何被驱动程序,使程序流程. 虽然顺序编程可以有一个外部机构介入程序, 当程序员已经确定这些干预发生, 而不是在任何时间,可能是事件驱动编程的情况下。()

实现事件监听器接口

我们将在一个单一的事件类图形库实现系统的最初没有复杂的模型. 我们会做的第一件事就是更改负责维护数据库的类的声明和绘制图形对象: “黑板”. 指示标记 “器物” 这个类是能听鼠标.

公共类 黑板 扩展 帆布 器物 鼠标监听{

新的界面,要求我们到一个新的呼叫添加到JAVA库找到实现此接口的文件. 我们会做的关键字 “进口”.

进口 java.awt.event.MouseListener;

将需要实现的接口中定义的方法, 以及之类的 “鼠标事件” 被作为参数传递给这些方法. 现在干脆宣布不添加任何功能.

	公共无效 mouseClicked(鼠标事件为arg0) {
		// TODO自动生成方法存根
	}
	公共无效 mouseEntered(鼠标事件为arg0) {
		// TODO自动生成方法存根
	}
	公共无效 mouseExited(鼠标事件为arg0) {
		// TODO自动生成方法存根
	}
	公共无效 mousePressed(鼠标事件为arg0) {
		// TODO自动生成方法存根
	}
	公共无效 mouseReleased(鼠标事件为arg0) {
		// TODO自动生成方法存根
	}

活动报名

鼠标事件发生时,我们将随时登记. 在类的构造函数或在start方法将加入通话 “addMouseListener将” 以表明我们要添加的监听器.

传递的参数是侦听到鼠标的类的名称. 在我们的例子中表明它是正在记录时,发生该事件的提醒同一类. 这是与标签进行 ““.

	公众 黑板(){
		.addMouseListener将();
	}

事件管理

定义了几个变量将存储在那里鼠标按下屏幕上的位置的坐标

	私人诠释 lastx = 0;
	私人诠释 lasty = 0;

实现上述功能之一, 例如,可在每次按下鼠标按钮的时间 “mouseClicked”. 现在,我们将保持刚刚按下的位置的坐标, 虽然我们可以并发附加功能程序.

这些坐标在被传递给函数的对象或给定的事件, 物体 “鼠标事件”

	公共无效 mouseClicked(鼠标事件为arg0) {
		lastx = arg0.getX();
		lasty = arg0.getX();
	}

修改负责图形显示上画来画的东西在哪里鼠标按下的位置的方法. 这是最简单的实现,让我们来验证图形已经捕获并处理的鼠标事件.

	公共无效 paintOffScreen(图形克){
		枚举枚举= bd.elements();
		对象ob;
		(enum.hasMoreElements()){
			OB = enum.nextElement();
			如果(OB的instanceof SimpleDrawable){
				((SimpleDrawable) 是否).油漆(克);
			}
		}
		paintMousePosition(克);
	}

该功能是负责这 “paintMousePosition”, 它的实现是用图形写鼠标的位置的所存储的坐标, 由函数 “抽绳”.

	私人无效 paintMousePosition(图形克) {
		g.DrawString的("("+lastx  ","+lasty  ")", lastx, lasty);
	}
JAVA

当然JAVA