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

目标:在画图板上画一条直线,供大家参考,具体内容如下

一、首先需要建立一个界面

过程:1、创建界面对象(Java语言中已经有,可直接创建对象来使用)。

2、对于一个界面,我们需要设置它的大小、居中、界面关闭、界面可见。

3、写主方法去实现界面。

(目前界面还未实现画图板的功能)

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、加入鼠标监听器下的所有方法。

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)后,我们需要在界面类中添加监听器  =====> 在界面上添加监听器后,我们才能在界面上画图。(写在画图板“可见”之前 )。

在画图板中输入一下代码

//创建监听器
 Listener draw = new Listener();
//添加监听器
 jframe.addMouseListener(draw);

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

(写在画图板“可见”之后)

//获取Graphics
Graphics graph = jframe.getGraphics();
//给监听器的画布对象赋值
draw.setGraphics(graph);

然后转到监听器类(Listener)中输入代码

3、开始画直线

<1> 首先,画一条直线我们需要获取直线两端点的坐标。所以定义x1,y1,x2,y2。

<2>画布画图,需要定义Graphics

//记录坐标
int x1,y1,x2,y2;

//定义Graphics
Graphics graph1;

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

//传画布值的方法
public void setGraphics(Graphics graph2){
graph1 = graph2;

<4>鼠标画出直线

在鼠标按下事件中输入起点坐标

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

四、完整过程:

界面

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

}

监听器

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)

相关推荐

  • JAVA GUI自定义JPanel画板背景

    自定义JPanel面板背景 一.前言 1.GUI全称是Graphical User Interface,就是图形用户界面.JAVA的GUI应用广泛在我们生活中也很常见.很多应用使用该GUI编程设计,像点击QQ图标弹出对应的登录窗体. 一般程序与用户的交互都基于对应程序的运行界面. 2.JPanel面板是SWING下的一个面板容器类.该面板支持嵌套,可设置布局方式,设置不同的布局管理器可添加其他控件像JButton按钮,JTextField文本框等.来设计完善一个程序界面窗体. 作为绘制面板支持s

  • Java版画板的实现方法

    Windows的画图板相信很多人都用过,这次我们就来讲讲Java版本的简易画板的实现. 基本的思路是这样的:画板实现大致分三部分:一是画板界面的实现,二是画板的监听以及画图的实现,三是画板的重绘.(文章较长,但是代码是逐步递进的,可以按三部分分开来看,实现了当前部分再去看下一部分.)首先是画板的界面实现,因为我没有去找具体的图标,界面上的所有组件都是Swing的自带组件,所以界面略微有点简陋,不过如果想要优化也简单,把界面上的组件都改成自定义的图标即可.界面实现后,就可以考虑给界面的组件加上监听

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

    目标:在画图板上画一条直线,供大家参考,具体内容如下 一.首先需要建立一个界面 过程:1.创建界面对象(Java语言中已经有,可直接创建对象来使用). 2.对于一个界面,我们需要设置它的大小.居中.界面关闭.界面可见. 3.写主方法去实现界面. (目前界面还未实现画图板的功能) public class DrawUI { //显示界面的方法 public void show(){ //创建界面对象 JFrame jframe = new JFrame(); //设置界面的尺寸.位置居中.关闭.标

  • java实现画图板功能

    本文实例为大家分享了java实现画图板的具体代码,供大家参考,具体内容如下 画图板需要满足的功能有: 画线,画三角形,画矩形,画多边形,画曲线 设置不同颜色的画笔 改变窗口大小或最小化窗口后重新打开时图案不消失 画图方法的编写: 创建一个类,继承JPanel类,重写JPanel的绘制方法,重写方法时写上原有的绘制方法,再添加绘制已有的图形的方法.(为了在改变窗口大小和最小化窗口后再打开时图案不消失) 在画图方法中首先创建一个窗体,设置好各项参数后,将窗体设置边框布局.由于继承了JPanel类,重

  • 基于java实现画图板功能

    本文实例为大家分享了java实现画图板功能的具体代码,供大家参考,具体内容如下 一.介绍 这个画图板主要实现的功能是画矩形(矩形使用的是一个函数画图的方法,这样画出来的图形比较有特点).椭圆.多变形(先画一条直线,鼠标每点击一个地方就会从上一个点连接到点击的点,当鼠标双击时,双击的点会和终点和起点相连).画线.橡皮以及颜色选择器,效果图如下所示: 二.具体实现 本项目主要使用的是java.swing以及java.awt的画图工具来实现.首先显示窗口的建立,先让主类draw继承javax.swin

  • Java实现的简单画图板示例

    本文实例讲述了Java实现的简单画图板.分享给大家供大家参考,具体如下: 这个画图板是我好久之前做的,之后浙大的同学需要做课设然后就花了一点时间将它改了一下,变得简单些能够方便扩充功能,同时学习java基础 先截图一下吧,就可以知道有哪些功能了~ 三个分区,上面选择图形,下面选择颜色,立体圆就是一个分形,也先放着不需要的同学可以注释了它 代码很简单,就是JPanel进行分区,得到画笔,同时使用画图的函数就可以做到了 贴代码应该很快就会了~ 主类 package awtDemo; import j

  • Java实现简易画图板

    本文实例为大家分享了Java实现简易画图板的具体代码,供大家参考,具体内容如下 这是Windows系统自带的画图板,我们就是模仿着用Java去写一个简易版的画图板. 效果图 图中的四个颜色按钮是可以配合要画的图形而改变线条颜色的,而且每次打开颜色按钮的颜色都是随机的.目前画图什么的都没什么问题,只是一些细节没有去完全修复了,但不影响使用,再加上近段时间有点太忙,就没有去完善相关细节了,有兴趣的小伙伴可以评论区帮忙提出指正意见哈. 画图板UI界面代码 import java.awt.Color;

  • C++ opencv实现在图片上画一条线示例代码

    1 在图片上用鼠标进行操作,opencv主要用到setMouseCallback()函数. winname 窗口名称 onMouse 鼠标事件的回调函数 userdata 传递给回调函数 还有onMouse函数 event 鼠标事件 x,y 鼠标在图片上的坐标 flags 鼠标事件标志 这里有一个容易搞混的地方 void跟void* 在函数的返回值中, void 是没有任何返回值, 而 void * 是返回任意类型的值的指针. 划线还需要用到line()函数 img 图片名称 pt1 线段起点

  • 使用Python编写简单的画图板程序的示例教程

    从这次开始,我会由简单到困难(其实也不会困难到哪里去)讲几个例程,每一个例程都是我自己写(或者修改,那样的话我会提供原始出处)的,都具有一定的操作性和娱乐性.例程中汇尽量覆盖到以前所讲的pygame中方方面面,如果看到哪一步不明白,那就再回去复习复习,基本没有人会看一遍什么都记住什么都掌握的,重复是学习之母,实践是掌握一门技艺的最好手段! 这次就先从一个最简单的程序开始,说实话有些太简单我都不好意思拿出手了,不过从简单的开始,容易建立自信培养兴趣.兴趣是学习之母嘛.我们这次做一个画板,类似Win

  • Android 自定义view之画图板实现方法

    看效果: 中间一个画图板 上方小控件用来显示实时画出的图形 下方小控件用来做一些画图的控制 2个小控件都能移动 顺带还有一个刮刮卡效果,只需要改一个参数: 自定义view首先要自定义属性: 在values下面创建attrs.xml: <!--画图板--> <declare-styleable name="DrawImg"> <attr name="PaintColor" /> //画笔颜色 <attr name="

  • Android实现在map上画出路线的方法

    本文实例讲述了Android实现在map上画出路线的方法.分享给大家供大家参考.具体如下: 最近在搞在地图上画出路线图,经过一段时间的摸索,终于搞明白了,其实也挺简单的,写个类继承Overlay,并重写draw方法,在draw方法中画出 path即可.对于Overaly,在地图上标记某个点或者画线之类的就要使用overlay,overlay相当于一个覆盖物,覆盖在地图上,这个覆盖物要自己实现所以要继承Overlay. MapActivity.java如下: package net.blogjav

  • java实现图片用Excel画出来

    本文实例为大家分享了java用Excel将图片画出来的具体代码,供大家参考,具体内容如下 能够将任何图片在excel上利用单元格背景完整的描绘出来. 像网络上出现的用excel画出超级玛丽等等,各种图片都能在excel上"画"出来. 图片我没有经过特殊处理,所以转换的图片不能太大,有多大的图片就要有多少的单元格.如640*480就有307200的单元格. 如要转换的图片: 转换后在excel中的效果: 没多大意义练练手: import java.awt.Color; import ja

随机推荐