java小白,最近刚开始学习java,在这记录分享这个简易画板(直线、矩形、多边形)的实现,希望能和大家多多交流。写的会比较细,有说的不好的地方,欢迎大佬拍砖。
这个画板的功能就是能通过选择图形按钮与颜色按钮来画出自己想画的图形。
首先我们要做一个可视化界面,用JFrame类即可,JFrame是一个窗体类,就是我们平时见到的窗体框架,当我们实例化一个JFrame对象时,相当于就是创造了一个窗体。
于是我们先定义一个类的方法,建立一个窗体,并设置属性,再在main方法中调用这个方法就会出现一个窗口。
public
这样我们就已经做好了一个简单的窗体程序,接下来我们要在窗体上添加各种功能,比如画画功能,比如重绘功能(后面会详细介绍),比如改变画笔颜色,比如画各种图形,比如清除画板等等。
我们先通过数组给窗体添加组件,还要获取一个画笔来画出图形。在Java中,有一个画笔类,我们只需要实例化画笔对象即可,而画笔对象不是new出来的,我们需要用一个JFrame对象来获取。
DrawMouse
要想按钮有我们预想的功能,我们就需要给按钮添加动作监听器,并给窗体添加上鼠标监听器。添加的监听器的方法参数是ActionListener,MouseListener两个接口,所以我们自己需要新建一个类(DrawMouse)来实现这两个接口,以改写监听方法,实现想要的功能。
public class DrawMouse implements MouseListener, ActionListener {
private int x1, y1, x2, y2,x3,y3,newx,newy,x0,y0;
private String name;
private Color color;
private boolean flag = true;
// 定义画笔类变量
private Graphics gr;
public void setGr(Graphics g) {
gr = g;
}
public void mouseClicked(MouseEvent e) {
x3 = e.getX();
y3 = e.getY();
if("多边形".equals(name) && !flag) {
gr.drawLine(newx,newy,x3,y3);
newx = x3;
newy = y3;
if(e.getClickCount()==2) {
gr.drawLine(x0, y0, x3, y3);
flag = true;
}
}
}
@Override
public void mousePressed(MouseEvent e) {
x1 = e.getX();
y1 = e.getY();
}
@Override
public void mouseReleased(MouseEvent e) {
x2 = e.getX();
y2 = e.getY();
if ("直线".equals(name)){
// 画线
gr.drawLine(x1, y1, x2, y2);
}
if ("矩形".equals(name)){
// 矩形
gr.drawRect(Math.min(x1,x2), Math.min(y1,y2), Math.abs(x2 - x1), Math.abs

这篇博客记录了一位Java初学者实现一个简易画板的过程,包括直线、矩形、多边形的绘制,颜色选择,以及清除画板等功能。通过JFrame创建窗口,使用画笔类实现图形绘制,并通过监听器处理用户交互。文章详细介绍了如何处理窗体大小变化时保持图形不消失的问题,提供完整的源代码供读者参考。
最低0.47元/天 解锁文章
773

被折叠的 条评论
为什么被折叠?



