如何用Java实现在画板上画直线

实现步骤

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);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值