实现步骤
1.创建一个窗体
2.在窗体上加一个鼠标监听器
3.获取鼠标所在位置的坐标
4.给窗体加上画笔
代码实现
public class Paintingboard {
public void draw(){
//创建一个窗体
JFrame jf=new JFrame();
jf.setTitle("画板");
jf.setSize(600,500);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jf.setVisible(true);
创建一个paintingboard(画板)的类之后,需要写一个方法(draw)
在程序入口创建一个paintingboard类的对象,让该对象调用写的方法
public static void main(String[]args){
Paintingboard painting=new Paintingboard();
painting.draw();
}
在这个方法(draw)中
1.创建一个窗体对象,完成窗体相关方法的调用
可视化的方法尽量往后放,但要放在获取画笔之前
在窗体调用方法时,需要导包
导包需要在public class之前
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseListener;
2.需要新建一个鼠标监听的类MouseAction
这个类同样需要导一些包
public void mouseClicked(MouseEvent e){
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public class MouseAction implements MouseListener {}
按住command键,用鼠标点击MouseListener,可以获得MouseListener的原代码,复制粘贴过来。
或者可以在报错时选择implement methods,同样可以得到原代码。
public void mouseClicked(MouseEvent e){
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
创建好鼠标监听的类后,可在窗体上添加鼠标监听器
需要创建MouseListener的对象,将paintingboard类和MouseAction类相连起来
之后在MouseAction类中的方法在窗体上便可实现
MouseAction mouselistener=new MouseAction();
jf.addMouseListener(mouselistener);
3.要画线就需要起点和终点两个点的坐标
鼠标按下,获取起点坐标
鼠标松开,获取终点坐标
因为要用到x1,y1,x2,y2,所以在使用前做好定义
int x1,y1,x2,y2;
public void mousepressed(MouseEvent e){
x1=e.getX();
y1=e.getY();}
public void mouseReleased(MouseEvent e) {
x2=e.getX();
y2=e.getY();}
4.窗体需要获取画笔
画笔要在MouseAction中使用,因为获取坐标是在MouseAction中获取的,划线需要用坐标
mouselistener.g2= jf.getGraphics();
所以需要在在MouseAction中定义一个画图的graphics
Graphics g2;
需要注意的是在调用g2时要用MouseAction中的对象mouselistener调用,而不是类名.g2
有了画笔就可以画线了
g2.drawLine(x1,y1,x2,y2);