UI界面基础如何用鼠标控制物体移动
2016-05-05 12:43
459 查看
如何用鼠标控制小球移动
定义任务
代码实现
自己尝试写一下代码,然后再看我的代码
这是一个小活,目的就是不让之前的学习停滞下来,其实知道之前如何用键盘控制小球一样,无非这里是把键盘换成了鼠标,我还是希望大家靠自己去实现。
定义任务
让鼠标能够拖动屏幕上的小球。还是先来分解一下任务,首先是先要一个窗体。然后是画上一个小球,最后是鼠标点击事件。这样的提示看上去虽然是很累赘,但是也不完全是多余,对于初学者,在对一个任务还没有很清晰的逻辑之前,最好的办法就是将任务分布处理。和键盘处理事件一样,鼠标处理事件也有相应的接口,而且鼠标处理事件的接口有两个:一个是MouseListener。另一个是MouseMotionListener。我们知道鼠标的状态有移动,拖动,停着点击,在Java里将这些动作划分成了两类,分别是移动和静止,所有和移动有关的都是MouseMotionListener,静止时MouseListener。
代码实现
自己尝试写一下代码,然后再看我的代码
import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; public class MyBall { public static void main(String[] args) { // TODO Auto-generated method stub Frame w = new Frame(); w.setSize(300, 400); MyOval mp = new MyOval(); w.add(mp); //注册事件 w.addMouseMotionListener(mp); mp.addMouseMotionListener(mp); w.show(); } } class MyOval extends Panel implements MouseMotionListener{ int x=30; int y=30; public void paint(Graphics g){ g.fillOval(x, y, 20, 20); } @Override public void mouseDragged(MouseEvent e) { // TODO Auto-generated method stub x=e.getX(); y=e.getY(); repaint(); } @Override public void mouseMoved(MouseEvent e) { // TODO Auto-generated method stub } }
这一小段的代码经过之前的训练完全有能力自己写出来,那么我们来分析一下,完成这一步的关键代码就在鼠标拖动那里,我们无是在这里修改x和y的值,然后重画。x和y的值要变成什么样子呢?当然是鼠标的位置了,那么鼠标的位置如何得到,就像键盘事件里我们寻找哪个按键被按下一样,答案就在那么参数e里,用它点点看看支持的方法,然后打印出来看看,你就会明白了是怎么一回事情了。是不是很简单呢
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- GUI - Web前端开发框架
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 评价ui设计作品好坏的八个标准(界面/交互设计研究)
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序