java画直线_java实现画图板上画一条直线

java实现画图板上画一条直线

发布于 2020-8-11|

复制链接

摘记: 目标:在画图板上画一条直线,供大家参考,具体内容如下一、首先需要建立一个界面过程:1、创建界面对象(Java语言中已经有,可直接创建对象来使用)。2、对于一个界面,我们需要设置它的大小、居中、界面关闭、界面可见。3、写主方法去实现界面。(目前界面还未 ..

目标:在画图板上画一条直线,供大家参考,具体内容如下一、首先需要建立一个界面过程:1、创建界面对象(Java语言中已经有,可直接创建对象来使用)。2、对于一个界面,我们需要设置它的大小、居中、界面关闭、界面可见。3、写主方法去实现界面。(目前界面还未实现画图板的功能)

```java

public class DrawUI {

//显示界面的方法

public void show(){

//创建界面对象

JFrame jframe = new JFrame();

//设置界面的尺寸、位置居中、关闭、标题

jframe.setSize(1000, 900);

jframe.setLocationRelativeTo(null);

jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jframe.setTitle("画图板v2.0");

//设置界面可见

jframe.setVisible(true);

}

//主方法

public static void main(String[] args){

DrawUI UI = new DrawUI();

UI.show();

}

}

```

二、创建监听器类1、重新创建一个监听器(Listener)的类:要在界面上实现画图,我们需要给界面添加监听器。====>实际上是让鼠标的一些指令能够在界面上有反应。换言之,监听器是一个连接鼠标与界面的桥梁。2、监听器类(Listener)实现鼠标监听器(MouseListener)的接口.3、加入鼠标监听器下的所有方法。

```java

public class Listener implements MouseListener{

//鼠标点击

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){}

}

```

三、实现画出直线1、创建监听器类(Listener)后,我们需要在界面类中添加监听器  =====> 在界面上添加监听器后,我们才能在界面上画图。(写在画图板“可见”之前 )。在画图板中输入一下代码

```java

//创建监听器

Listener draw = new Listener();

//添加监听器

jframe.addMouseListener(draw);

```

2、画一条直线,我们需要用Graphics (画布工具)用于画图。在此,画图板需要获取Graphics 并且监听器对象上设置该画布。(写在画图板“可见”之后)

```java

//获取Graphics

Graphics graph = jframe.getGraphics();

//给监听器的画布对象赋值

draw.setGraphics(graph);

```

然后转到监听器类(Listener)中输入代码3、开始画直线 首先,画一条直线我们需要获取直线两端点的坐标。所以定义x1,y1,x2,y2。画布画图,需要定义Graphics

```java

//记录坐标

int x1,y1,x2,y2;

//定义Graphics

Graphics graph1;

```

传画布(Graphics)值的方法 ====> 画图板上的画布值等于监听器上的画布值

```java

//传画布值的方法

public void setGraphics(Graphics graph2){

graph1 = graph2;

```

鼠标画出直线在鼠标按下事件中输入起点坐标

```java

public void mousePressed(MouseEvent e){

//获取按下信息

x1=e.getX();

y1=e.getY();

}

```

在鼠标松开事件中输入终点坐标,并画出直线

```java

public void mouseReleased(MouseEvent e){

//获取松开信息

x2=e.getX();

y2=e.getY();

//画线

graph1.drawLine(x1,y1,x2,y2);

}

```

四、完整过程:界面

```java

package Draw;

import java.awt.Graphics;

import javax.swing.JFrame;

public class DrawUI {

public void show(){

JFrame jframe = new JFrame();

jframe.setSize(1000, 900);

jframe.setLocationRelativeTo(null);

jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

jframe.setTitle("画图板v2.0");

//创建监听器

Listener draw = new Listener();

//添加监听器

jframe.addMouseListener(draw);

jframe.setVisible(true);

//获取Graphics

Graphics graph = jframe.getGraphics();

//给监听器的画布对象赋值

draw.setGraphics(graph);

}

//主方法

public static void main(String[] args){

DrawUI UI = new DrawUI();

UI.show();

}

}

```

监听器

```java

package Draw;

import java.awt.Graphics;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

public class Listener implements MouseListener{

//记录坐标

int x1,y1,x2,y2;

//定义Graphics

Graphics graph1;

//传画布值的方法

public void setGraphics(Graphics graph2){

graph1 = graph2;

}

public void mouseClicked(MouseEvent e){}

public void mousePressed(MouseEvent e){

//获取按下信息

x1=e.getX();

y1=e.getY();

}

public void mouseReleased(MouseEvent e){

//获取松开信息

x2=e.getX();

y2=e.getY();

//画线

graph1.drawLine(x1,y1,x2,y2);

}

public void mouseEntered(MouseEvent e){}

public void mouseExited(MouseEvent e){}

}

```

  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

薿瑊珩翯

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值