首页 / JAVA / Java_绘图板_初始版==>进阶版
Java_绘图板_初始版==>进阶版
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java_绘图板_初始版==>进阶版,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3326字,纯文字阅读大概需要5分钟。
内容图文
![Java_绘图板_初始版==>进阶版](/upload/InfoBanner/zyjiaocheng/830/ea317ab5a56c443b80c4ea650d3b994f.jpg)
先在show_plate()函数(方法:顺便提一提,Java的类中只有两个组成1)属性成员 2)方法函数,各种操作都要在函数中进行)建立一个窗体(顶级容器)JFrame Plate = new JFrame(),用来当所谓的绘图板,基本操作同之前的登陆界面,JFrame类型创建,然后设置大小(setSize()),位置(setLocationRelativeTo()),关闭机制(setDefaultCloseOperation())。
板有了,那么剩下的就是关键的画笔:由于绘制的线条是在用户鼠标按下和松开的过程来完成,所以我们的画笔本质上是一个监听器,鼠标监听器!监听器在之前的登陆界面中有提到过,一般采用重写Java原有接口的方式创建属于自己的监听器(由于接口是abtract抽象类,所以里边的函数要全部重写,不需要用的写成空函数即可)。
这里插入先讲讲这个自定义监听器类(DrawerListener)的实现:由于我们关注的是鼠标按下和松开这两个动作,所以我们需要的接口函数是MousePressed和MouseRelease,其他的为空即可。由于线条位置的确定需要坐标,所以在我们自己创建的DrawerListener中添加坐标属性:sx,sy,ex,ey;同时,由于画线的操作也是在鼠标松开的时候完成,所以我们需要利用Graphics(Java中的一个类)来实现绘线。
- Graphics :在类中创建一个Graphics对象,主要利用setColor,drawLine的绘制线条的函数。
- MousePressed(MouseEvent e) { }: 我们只需要读取坐标,可使用MouseEvent类中的函数getX(),getY()。
- MouseReleased(MouseEvent e) {}: 这里不仅要读取末坐标,还要进行线条的绘制(Graphics对象的函数使用)
![Java_绘图板_初始版==>进阶版 - 文章图片](/upload/getfiles/0001/2021/5/6/20210506122841946.jpg)
![Java_绘图板_初始版==>进阶版 - 文章图片](/upload/getfiles/0001/2021/5/6/20210506122841975.jpg)
1 import java.awt.Color; 2 import java.awt.Graphics; 3 import java.awt.event.MouseEvent; 4 import java.awt.event.MouseListener; 5 import java.awt.event.MouseWheelEvent; 6 7 //画笔监听器 8 public class DrawerListener implements MouseListener { 9 int x1,y1,x2,y2,x3,y3,sx,sy,ex,ey; 10 Graphics graph; //创建画布 11 public void mousePressed(MouseEvent e){ 12 System.out.println("Pressed"); 13 sx = e.getX(); //注意是得到事件源的坐标,鼠标点击为事件源 14 sy = e.getY(); 15 } 16 public void mouseReleased(MouseEvent e){ 17 System.out.println("Released"); 18 ex = e.getX(); 19 ey = e.getY(); 20 //松开时,画图 21 graph.setColor(Color.BLUE); //画笔颜色 22 graph.drawLine(sx, sy, ex, ey); 23 } 24 25 public void mouseClicked(MouseEvent e){} 26 public void mouseEntered(MouseEvent e){} 27 public void mouseExited(MouseEvent e){} 28 29 }画笔监听器
然后再回到我们主体的Drawer类中的show_plate()函数:往窗体里添加一个DrawerListener类,之后在窗体可见之后建立Graphics对象graph,接着获取窗体的画布:graph = Plate.getGraphics(); 接着讲获取的graph赋值给监听器的Pen.graph,因为最终的绘制操作是在监听器中实现的。(其实也可以直接将Plate的画布赋值给Pen.graph,就不创建一个新的对象了)。
![Java_绘图板_初始版==>进阶版 - 文章图片](/upload/getfiles/0001/2021/5/6/20210506122841946.jpg)
![Java_绘图板_初始版==>进阶版 - 文章图片](/upload/getfiles/0001/2021/5/6/20210506122841975.jpg)
1 public class Drawer { 2 public void show_plate() 3 { 4 JFrame Plate = new JFrame(); 5 Plate.setSize(1000,800); 6 Plate.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 7 Plate.setLocationRelativeTo(null); 8 9 //创建画笔监听器 10 DrawerListener Pen = new DrawerListener(); 11 Plate.addMouseListener(Pen); 12 Plate.setVisible(true); 13 //要在容器可见后,才创建画布 14 Pen.graph = Plate.getGraphics(); //注意Graphics 是一个类,获取窗体的画布对象 15 16 } 17 18 public static void main(String[] args){ 19 Drawer drawer = new Drawer(); 20 drawer.show_plate(); 21 } 22 }Drawer
进阶版:其实就是在原来的基础上增加按钮,来实现选择不同绘制图形,不同颜色
参考https://blog.csdn.net/a784296404/article/details/80150161
内容总结
以上是互联网集市为您收集整理的Java_绘图板_初始版==>进阶版全部内容,希望文章能够帮你解决Java_绘图板_初始版==>进阶版所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。