栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java绘图与事件响应机制-基础

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java绘图与事件响应机制-基础

坐标体系-介绍

java坐标体系,坐标原点在左上角,以像素为单位,在java体系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标远点y个向上。

像素

    绘图必须搞清楚一个重要概念,像素。

    计算机在屏幕上显示的内容都是由屏幕上的每一个像素组成的。例如,计算机显示器的分辨率是800×600,表示计算机屏幕上的每一行由800个点组成,共有600行,整个计算机屏幕共有480 000个像素。像素是一个密度单位,而厘米是长度单位,两者无法比较。

java绘图技术 绘图原理

Component 类提供两个和绘图相关的方法

    paint()绘制组建的外观repaint()刷新组建的外观

当组件第一次在频幕显示的时候,会徐汇组东的调用paint方法来绘制组件

    在以下情况paint会被调用窗口最小化,在最大化窗口大小发生变化repaint函数被调用
简单的画图顺序
//1.定义一个面板 Panel 继承JPanel类,画图象就在面板上画 //2在面板中用画笔调用绘画方法(Graphics),extends JPanel //3声明画板,并初始化画板大小extends Jframe //4实例化画板,就对调用绘画

Graphics类 :提供了很多画图的方法

1.画直线drawLine(int x1,int y1,int x2,int y2)

2画矩形边框drawRect(int x, int y, int width, int height)

3.画椭圆边框drawOval(int x, int y, int width, int height)

4.填充矩形 fillRect(int x, int y, int width, int height)

5.填充椭圆fillOval(int x, int y, int width, int height)

6.画图片drawlmage(lmage img, int x, int y, …)

​ 1)获取图片资源

image = getDefaultToolkit().getImage(panel.class.getResource(“URL”))

图片要放在项目的根目录

drawlmage(lmage img, int x, int y, …)

7画字符串drawString(String str, int x, int y)

​ 1)画笔设置颜色

​ 2)设置字体

8.设置画笔的字体setFont(Font font)

9.设置画笔的颜色setColor(Color c)

java事件处理机制

java事件处理是采取“委派事件模型"。当事件发生时,产生事件的对象,会把此"信息”传递给"事件的监听者”处理,这里所说的"信息"实际上就是java.awt.event事件类库里某个类所创建的对象,把它称为“事件的对象"。

**事件源:**是一个产生时间的对象,比如按钮,窗口等

**事件:**事件就是承载事件源状态改变时的对象,比如当键盘事件、鼠标事件、窗口事件等等,会生成一个事件对象,该对象保存着当前事件很多信息,比如KeyEvent对象有含有被按下键的Code值。java.awt.event包和javax.swing.event包中定义了各种事件类型。

**事件类型:**自行查阅JDK文档。

事件监听器接口:

    当事件源产生了事件,可以传递给事件监听者处理

    事件监听者是一个类,该类实现了某个事件监听接口,KeyListener ,他就可以作为一个事件监听者,对接受的事件进行处理

    class panel extends JPanel  implements KeyListener {}
    

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

    这些接口在ava.awt.event包和javax.swing.event包中定义,

java键盘事件控制问题实例

    (类实现KeyListener),实现方法KeyListener是一个监听器,用于监听键盘事件

    在窗口Jframe中加入,键盘监听事件,则可以监听到面板上的事件

    this.addKeyListener(panel1);
    

    响应时间进行绑定

     @Override
        public void keyTyped(KeyEvent e) {//监听有字符输出时,该方法会触发
    
        }
    
        @Override
        public void keyPressed(KeyEvent e) {//当某个键按下,会被触发
            System.out.println(e.getKeyChar());
    
        }
    
        @Override
        public void keyReleased(KeyEvent e) {//当某个键松开,就会触发
           
    

    每次响应之后要画板重绘

this.repaint();
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781802.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号