Java绘图和事件处理机制

Java绘图坐标系:

        坐标原点位于左上角,以像素为单位

        像素:计算机显示在屏幕上的内容都是以像素为单位的组成的。像素越多,画面越清晰。

        坐标系中,第一个坐标为x坐标,表示当前方向为水平方向,距离坐标原点x的单位

                第二个坐标为y坐标,表示当前方向为垂直方向,距离坐标原点y个单位

Java绘图技术:

        创建画板 -> 使用paint方法在画板上绘图 -> 创建画框 -> 将画板放入画框中

Java绘图原理:

        Component类中提供了两个十分重要的方法:

paint(Graphics g) // 绘制组件外观,g相当于一个画笔
repaint() // 刷新组件外观,再次调用paint方法

        创建画板:

class MyPanel extends JPanel // 继承Jpanel类,相当于定义了一个画板

        调用paint方法绘画:

// Graphics类中提供了很多绘画方法
// drawOval(int x, int y, int width, int height):绘图圆形
g.drawOval(10, 10, 100, 100);
// 使用Graphics类中的不同方法绘制不同的图形:
// 直线:drawLine(int x1, int y1, int x2, int y2) :x1、y1表示起点的位置;x2、y2表示终点的位置
g.drawLine(10, 10, 110, 110);
// 矩形:drawRect(int x, int y, int width, int height):x1、y1表示左上角点的坐标,width、height表示宽高
g.drawRect(10, 10, 100, 100);
// 填充矩形:fillRect(int x, int y, int width, int height)
g.setColor(Color.PINK);// 设置画笔颜色
g.fillRect(110, 10, 100, 100);
// 填充椭圆:fillOval(int x, int y, int width, int height)
g.setColor(Color.RED);
g.fillOval(10, 110, 50, 100);
// 图片:drawImage(Image image, int x, int y, int width, int height)
Image image = Toolkit.getDefaultToolkit().getImage("D:\\idea\\IntelliJ IDEA 2021.1.3\\projects\\GankGame\\src\\com\\kxg\\draw\\dog.PNG");
g.drawImage(image, 110, 110, 100, 100, this);
// 字符串:drawString(String str, int x, int y)
g.setColor(Color.BLUE);// 设置画笔颜色
g.setFont(new Font("隶书", Font.BOLD, 20)); // 设置字体:样式、粗细、大小
g.drawString("北京欢迎你", 200, 100);

        创建画框

public class BallMove extends JFrame // 继承JFrame类,实现画框

        将画板放入画框中:

// 初始化画板
myPanel = new MyPanel();
// 将面板加入画框中
this.add(myPanel);
// 设置画框的大小
this.setSize(400, 300);
// 设置画框可视
this.setVisible(true);
// 点击画框窗口上的小x,程序也随之结束
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Java中的事件处理机制: 

        Java时间处理采取的是“事件委派机制”:当事件发生时,产生事件对象,把此信息传递给“事件的监听者”处理

        信息:Java.awt.event事件类库中的某个类所创建的对象,把它称之为"事件处理对象"

(用户操作)事件源   -----产生的时间对象-----> 事件监听者(事件处理方法)

事件源:产生时间的一个对象

事件:承载事件源状态改变时的对象,比如:键盘事件、鼠标事件、窗口事件等等,会生成对象

        事件对象中保存着当前时间的许多信息。比如:KeyEvent类中有被按下键盘的键的Code值

事件监听接口:

        事件源可以产生一个对象,传给事件监听者处理。

事件监听者:

        事件监听者实际上是一个类,实现了某个事件监听器接口,对接收的事件做出处理

        事件监听接口可以有很多种,不同的事件监听器实现不同的接口。一个类可以实现多个监听接口。

// KeyListener:键盘监听器,可以监听键盘事件
class MyPanel extends JPanel implements KeyListener //实现KeyListener接口
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值