在前面我们实现了画一条直线,那么如何画曲线呢?如何让画笔如同手中的铅笔一样想怎样画就怎样画?那么今天就来实现画铅笔线。
package PaintBoard; import java.awt.Graphics; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionListener; import javax.swing.JFrame; public class MyPanint extends JFrame { public void showUI(){ this.setSize(400, 400); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(3); this.setTitle("简易画图板"); this.setVisible(true); Graphics g=this.getGraphics(); Listener1 lisn1=new Listener1(g); this.addMouseMotionListener(lisn1); this.addMouseListener(lisn1); } // public void paint(Graphics g){ // super.paint(g); // } public static void main(String[] args) { MyPanint mp=new MyPanint(); mp.showUI(); } }
package PaintBoard; import java.awt.Color; import java.awt.Graphics; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.util.ArrayList; public class Listener1 implements MouseListener,MouseMotionListener{ int x1,y1,x2,y2; int x,y; ArrayList<Position> list1=new ArrayList<>(); ArrayList<Position> list2=new ArrayList<>(); private Graphics g; public Listener1(Graphics g) { this.g = g; } public void mouseClicked(MouseEvent e) { } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { x2=e.getX(); y2=e.getY(); Position pos=new Position(x2, y2); list1.add(pos); } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseDragged(MouseEvent e) { x=e.getX(); y=e.getY(); Position ps=new Position(x, y); list2.add(ps); System.out.println(""+list2.size()); for(int i=1;i<list2.size();i++){ Position pos1=list2.get(i-1); Position pos2=list2.get(i); if(Math.abs(pos1.getX()-pos2.getX())>10||Math.abs(pos1.getY()-pos2.getY())>10){ continue; }else{ g.setColor(Color.RED); g.drawLine(pos1.getX() ,pos1.getY(),pos2.getX(), pos2.getY()); } } } public void mouseMoved(MouseEvent e) { // x1=e.getX(); // y1=e.getY(); // System.out.println(""+x1); } }
package PaintBoard; public class Position { int x,y; public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } public Position(int x, int y) { this.x = x; this.y = y; } }
铅笔线实现的思想就是将鼠标拖拽移动的点的坐标存在链表里面,然后遍历链表,将线条画出来。
画图板就写到这里,只是写了比较典型的一些功能,其余的大多比较的简单,有兴趣的同学可以试着做出电脑上面画图板的效果。
相关推荐
利用java完成图形化用户界面实现加法运算,第一个加第二个当点击等号时在第三个文本框中显示相加之和
java图形化用户界面毕业设计的外文英文文献翻译.doc
Java图形用户界面的实习报告,有运行结果以及实习总结
Java图形化界面实现图书管理系统.zip Java图形化界面实现图书管理系统.zip
一个小程序,不过还行,适合初学者看,特别是大一的刚学的人
利用java图形化界面和网络编程相结合实现的--文件上传。 运行步骤: (1)分别运行工程两个包中的两个.java文件(UploadClient.java和UploadServer.java)分别会弹出“上传客服端”和“上传服务器”两个窗口。 ...
java图形用户界面,一些简单的图形界面实例
Java图形用户界面设计
用AWT来生成图形化用户界面时,组件和容器的概念非常重要。组件是各种各样的类,封装了图形系统的许多最小单位,例如按钮、窗口等等;而容器也是组件,它的最主要的作用是装载其它组件,但是象Panel这样的容器也经常...
Java创建图形用户界面.zipJava创建图形用户界面.zipJava创建图形用户界面.zipJava创建图形用户界面.zip
Java 图形用户界面设计 PPT 大学课件 Java 图形用户界面设计 PPT 大学课件 Java 图形用户界面设计 PPT 大学课件 Java 图形用户界面设计 PPT 大学课件
JAVA图形用户界面设计与实例 陈家兴等 2004年.pdf 很经典的书籍!高清!
图形化界面使用java swing编写,数据库使用MySQL数据库
Java SWT 图形用户界面教程 PDF Java SWT 图形用户界面教程 PDF
应用AWT组件开发图形用户界面程序 Java事件处理 图形用户界面AWT组件学习 应用Swing组件开发图形用户界面 Applet应用程序与图形用户界面介绍
介绍java图形用户界面设计的ppt,包括界面设计的样式
Java_GUI图形化用户界面编程的基础知识
22份java图形用户界面代码,附带详细说明,有利于初学者学习java图形用户界面
这是一个关于java图形用户界面的PPT演示
使用于java图形用户界面的设计与美化