精华内容
下载资源
问答
  • Java绘图工具源代码,一个简单的绘图板,适合初学者。
  • java绘图软件.docx

    2019-07-19 11:51:34
    使用java语言实现一个绘图软件 功能多样 文档中包含源代码和实现图
  • java 绘图软件 小巧

    2008-12-14 12:56:25
    java语言设计的不巧的绘图工具,运了比较基础的语法,欢迎使用,并提出意见
  • java绘图软件

    2013-12-08 22:28:48
    功能最强大的绘图软件库,最新版本jgraphx-2_3_0_3,相信对大家绝对绝对有用,是非常不错的一款JAVA画图库
  • JAVA绘图工具开发简单介绍

    千次阅读 2012-08-10 11:12:05
    JAVA绘图工具开发简单介绍 最近在做IP售前工具,主要功能分为专家绘制向导图和一线使用向导图进行胶片制作。下面就我最近工作中学到的一点点知识给到家做一个JAVA绘图工具开发的简单介绍。 在IP售前工具的预研阶段...

    JAVA绘图工具开发简单介绍
    最近在做IP售前工具,主要功能分为专家绘制向导图和一线使用向导图进行胶片制作。下面就我最近工作中学到的一点点知识给到家做一个JAVA绘图工具开发的简单介绍。
    在IP售前工具的预研阶段我调查到两个非常好用的做JAVA绘图工具: JGraph和GEF。下面我就对这两个东西给大家做个介绍。
    JGraph介绍
    JGraph的基础知识简介,一个简单的开始JGraph是一个开源的,兼容Swing的基于MVC体系结构图形组件,具有以下特点:
    1) 基于Swing的扩展;(鉴于现在流行的SWT,这是一个缺点,不过SWT中加入Swing也是很方便的事)
    2) 简单、高效的设计;
    3) 时间效率高;
    4) 100 %纯Java;
    5) 强大的布局算法支持(虽然付费,大概500百美元,但其功能异常强大,适合像我这种不懂图论的java程序员)
    JGraph不包含实际的数据,它提供了数据的视;JGraph对象画图的机制是:
    将图元定义为一个一个的cell,每个cell可以是一个顶点(vertex)、边(edge)或者节点(port)中的一种。顶点可以有邻接的顶点,他们通过边相联系,边联接的两个端点称为目标和源,每个目标或者源是一个节点。节点是顶点的孩子。每个cell都可以有自己的孩子。
    每个cell的外观由相应的属性定义,属性序列是指一系列的键-值对,他们以Map形式组织,例如:
    Map map = new Hashtable();
    // 设置一个矩形的vertex
    Rectangle2D rect = new Rectangle2D.Double(20, 20, 40, 20);
    //GraphConstants为设置整个graph图像属性的类
    GraphConstants.setBounds(map, rect);
    // 设置各种vertex属性,这里设置其颜色为例
    GraphConstants.setBorderColor(map, Color.black);

    GEF介绍
    GEF(Graphical Editor Framework)是一个图形化编辑框架,它允许开发人员以图形化的方式展示和编辑模型,从而提升用户体验。这样的应用程序有很多,例如:UML类图编辑器、图形化XML编辑器、界面设计工具以及图形化数据库结构设计工具等等。归结一下,可以发现它们在图形化编辑方面具有以下共同之处:
    1) 提供一个编辑区域和一个工具条,用户在工具条里选择需要的工具,以拖动或单击的方式将节点或连接放置在编辑区域;
    2) 节点可以包含子节点;
    3) 用户能够查看和修改某个节点或连接的大部分属性;
    4) 连接端点锚定在节点上;
    5) 提供上下文菜单和键盘命令;
    6) 提供图形的缩放功能;
    7) 提供一个大纲视图,显示编辑区域的缩略图,或是树状模型结构;
    8) 支持撤消/重做功能;
    基于GEF的界面设计工具(Visual Editor,VE)的工作界面
    GEF最早是Eclipse的一个内部项目,后来逐渐转变为Eclipse的一个开源工具项目,Eclipse的不少其他子项目都需要它的支持。Eclipse 3.0版本花了很大功夫在从Platform中剥离各种功能部件上,包括GEF和IDE在内的很多曾经只能在Eclipse内部使用的工具成为可以独立使用的软件/插件包了。理论上我们是可以脱离Eclipse用GEF包构造自己的应用程序的,但由于它们之间天然的联系,而且Eclipse确实是一个很值得支持的开发平台,所以我还是推荐你在Eclipse中使用它。
    GEF的优势是提供了标准的MVC(Model-View-Control)结构,开发人员可以利用GEF来完成以上这些功能,而不需要自己重新设计。与其他一些MVC编辑框架相比,GEF的一个主要设计目标是尽量减少模型和视图之间的依赖,好处是可以根据需要选择任意模型和视图的组合,而不必受开发框架的局限(不过实际上还是很少有脱离Draw2D的实现)。
    现在来看看GEF是如何实现MVC框架的吧,在这个帖子里我们先概括介绍一下它的各个组成部分,以后将结合例子进行更详细的说明。

    JGraph和GEF的对比
    1) JGraph是纯JAVA开发的绘图工具,跨平台性好。GEF是基于SWT的图像编辑框架,需要开发人员自己去实现;
    2) JGraph有JGraphX和MXgraph分别用于C/S和B/S软件。能非常方便的嵌入;
    3) GEF的扩展性较好;
    4) GEF相关的问当较多,学习较方便。

    展开全文
  • jfdraw 一个Java 绘图工具,具体功能运行一下看看吧
  • java绘图软件实验源程

    2011-01-20 09:56:05
    设计与实现一个小型绘图软件系统,具有方便的图形用户界面,包括标题栏、菜单栏、工具栏,菜单栏有相关的菜单和菜单项,有快捷键,具有编辑、打开、保存和各种绘图功能(详细功能要求通过运行提供的字节码文件来...
  • java绘图工具源码

    2009-01-06 10:07:01
    同学的程序,由于还是初学者,编的不是很完美,但希望对大家有所帮助!
  • Java绘图工具源代码

    2008-03-19 18:24:09
    一个简单的绘图板!!!
  • 1.画直线2画圆3画矩形4画多边形5画曲线6画笔7填充8裁剪9,背景颜色设置10清空功能11,快捷键设置
  • import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Random; import javax.i...
    import java.io.File;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.Random;
    
    import javax.imageio.ImageIO;
    
    import net.coobird.thumbnailator.Thumbnails;
    import net.coobird.thumbnailator.geometry.Positions;
    
    import org.apache.commons.lang.ArrayUtils;
    import org.junit.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    
    import com.wangyun.service.LikeService;
    import com.wangyun.util.RandomNumber;
    
    public class NewsTest extends BaseJunit4Test{
    	/**
         * 产生三个不同的随机数
         * 
         * @throws IOException
         */
    	@Test
    	public void selectNews() throws IOException{		 
    		List random = RandomNumber.getRandom(3,4);	
    		System.out.println(random.get(0));
    		System.out.println(random.get(1));
    		System.out.println(random.get(2));
    	}
    	
    	
    	@Test
    	/**
         * 裁剪
         * 
         * @throws IOException
         */
        public void test6() throws IOException {
           /* *//**
             * 图片中心400*400的区域
             *//*
            Thumbnails.of("C:/image_120.jpg")
            .sourceRegion(Positions.CENTER, 400, 400)
            .size(900, 900)
            .keepAspectRatio(false)
            .toFile("C:/image_center.jpg");
            
            /**
             * 图片右下400*400的区域
             */
            /*Thumbnails.of("C:/image_120.jpg")
            .sourceRegion(Positions.BOTTOM_RIGHT, 600, 800)
            .size(900, 900)
            .keepAspectRatio(false)
            .toFile("C:/image_right.jpg");*/
            
            /**
             * 指定坐标
             */
            Thumbnails.of("C:/封面有故事02.jpg")
            .sourceRegion(30, 170, 690, 950)
            .size(600, 900)
            .keepAspectRatio(false)
            .toFile("C:/封面有故事.jpg");
        }
    
    	
    	
    	@Test
    	 public  void test3() throws IOException {
            /**
             * keepAspectRatio(false) 默认是按照比例缩放的
             */
    		Thumbnails.of("c:3ZM643{YKE5PAZ_CS]BDO5P.png")
            .size(600, 225)
            .keepAspectRatio(false)
            .toFile("C:/center3.jpg");
        }
    	
    	 /**
         * 压缩图片
         */
    	@Test
    	public void selectNews1() throws IOException{
    		int num = 1;  
    		int length=16;
            double random = Math.random();  
            if (random < 0.1) {  
                random = random + 0.1;  
            }  
            for (int i = 0; i < length; i++) {  
                num = num * 10;  
            }  
            System.out.println(num);
    	}
    	
    	/**
         * 转化图像格式
         * 
         * @throws IOException
         */
    	@Test
        public void test7() throws IOException {
            /**
             * outputFormat(图像格式)
             */
    		Thumbnails.of("C:/fm33.png")
            .size(600, 900).outputFormat("jpg")
            .toFile("C:/fm3.jpg");
        }
    	
    	 /**
         * 水印
         * 
         * @throws IOException
         */
    	@Test
        public void test5() throws IOException {
            /**
             * watermark(位置,水印图,透明度)
             */
    		Thumbnails.of("C:/fm11.png")
    		.size(600, 900)		
            .watermark(Positions.CENTER, ImageIO.read(new File("C:/yy.jpg")), 1f)
            .outputQuality(1f).toFile("C:/imageright.jpg");
        }
    }
    import org.junit.runner.RunWith;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    
    @RunWith(SpringJUnit4ClassRunner.class)//使用junit4测试
    @ContextConfiguration({"classpath:applicationContext.xml"})//加载配置文件
    public class BaseJunit4Test {
    
    }
    import java.util.List;
    import java.util.Random;
    import java.util.Vector;
    
    /**
     * @ClassName:     随机数工具类
     * @Description:  产生不同的随机数  
     * @author:  wangyun
     * @date: 2018-5-03     上午11:57:01
     */
    public class RandomNumber {
    	//a为产生随机数的个数
      public static List getRandom(int a,int b){
    	  //创建一个产生随机数的对象
          Random r = new Random();
    
          //创建一个存储随机数的集合
          Vector<Integer> v = new Vector<Integer>();
    
          //定义一个统计变量
          int count = 0;
    
          while(count < a){
              int number = r.nextInt(b);//0到list.size()大小的随机数
    
              //判断number是否在集合中存在
              if(!v.contains(number)){
                  //不在集合中,就添加
                  v.add(number);
                  count++;
              }
          }
    
    	return v;
    	  
      }
    }
    



    展开全文
  • 我们采用简单版本的Java海龟来画一些有趣的图形。 首先是我们的指令集: forward(units) 将龟按当前方向移动单位像素,其中unit是整数。按照原始徽标约定,乌龟开始朝上。 turn(degrees) 旋转龟由角度向右(顺时针...

    turtle图形可以使程序员向屏幕上的turtle发出命令,并随即画一条线。Turtle图形也已添加到许多不同的编程语言中,包括Python,它是标准库的一部分。我们采用简单版本的Java海龟来画一些有趣的图形。
    首先是我们的指令集:

    forward(units)
    将龟按当前方向移动单位像素,其中unit是整数。按照原始徽标约定,乌龟开始朝上。
    turn(degrees)
    旋转龟由角度向右(顺时针方向),其中,度是双精度浮点数。

    了解了指令集之后,我们就可以画一些简单的图形。

    public static void drawSquare(Turtle turtle, int sideLength) {
    		//正方形
    		turtle.forward(sideLength);
    		turtle.turn(90.00);
    		turtle.forward(sideLength);
    		turtle.turn(90.00);
    		turtle.forward(sideLength);
    		turtle.turn(90.00);
    		turtle.forward(sideLength);
    		turtle.turn(90.00);
    	}
    

    再比如正多边形:

    	public static double calculateRegularPolygonAngle(int sides) {
    		//通过角度计算边数
    		return 180.00 - 360.00 / sides;
    	}
    	public static void drawRegularPolygon(Turtle turtle, int sides, int sideLength) {
    		//绘制正多边形
    		double degrees = 180 - calculateRegularPolygonAngle(sides);
    		for (int i = 0; i < sides; ++i) {
    			turtle.forward(sideLength);
    			turtle.turn(degrees);
    		}
    	}
    
    

    我们可以再进阶一下,用多边形画圆:

    public static void drawCircle(Turtle turtle,int sideLength) {
    		//用三角形旋转一圈,当然用几边形都可以
    		for(int i = 0;i<120;++i) {
    			drawRegularPolygon(turtle, 3, 100);
    			turtle.turn(3.0);
    		}
    	}
    

    画成如图:

    在这里插入图片描述
    我们可以改换一下颜色,画一些成彩色的图形,比如

    public static void color(Turtle turtle, int x) {
    		switch (x) {
    		case 0:
    			turtle.color(PenColor.RED);
    			break;
    		case 1:
    			turtle.color(PenColor.ORANGE);
    			break;
    		case 2:
    			turtle.color(PenColor.BLUE);
    			break;
    		case 3:
    			turtle.color(PenColor.MAGENTA);
    			break;
    		case 4:
    			turtle.color(PenColor.GREEN);
    			break;
    		default:
    			break;
    		}
    	}
    		public static void drawPersonalArt(Turtle turtle) {
    		boolean flag = true;
    		int x = 0, s = 1;
    		while (flag) {
    			for (int i = 0; i <= 12; ++i) {
    				color(turtle, x);
    				turtle.forward(s);
    				turtle.turn(30.0);
    				s++;
    				x++;
    				if (x == 5)
    					x = 0;
    				if (s == 100)
    					flag = false;
    			}
    		} // 绘制彩色棒棒糖
    	}
    

    绘成如下:
    在这里插入图片描述

    展开全文
  • java的Swing编写的一个简单的绘图软件,可以用来绘制简单的图形,还可以保存,复制,粘贴。虽然有点小Bug,但是用来当一个毕业设计绝对够格!
  • 课程设计 花了 一周时间完成的 实现了文件的打开、保存、打印 实现了直线 多种曲线的画法 颜色选择 线宽设定
  • JAVA开发绘图软件

    2012-01-16 10:00:53
    JAVA开发的绘图软件
  • Java绘图

    万次阅读 多人点赞 2019-04-27 21:50:04
    绘图可以在应用程序中绘制图片、文字、图形等,在Java中主要可以使用Graphics和Graphics2D进行绘图,其中Graphics类是所有图形上下文的抽象基类,而Graphics2D就继承了Graphics类。而Graphics功能没有Graphics2D强大...

    绘图可以在应用程序中绘制图片、文字、图形等,在Java中主要可以使用Graphics和Graphics2D进行绘图,其中Graphics类是所有图形上下文的抽象基类,而Graphics2D就继承了Graphics类。而Graphics功能没有Graphics2D强大,Graphics2D是Graphics的扩展。

    构造一个新的Graphics2D对象,因为Graphics2D是抽象类,所以无法直接创建对象,因很多绘图对象是Graphics类的实例,所以这里使用了强制转换。

    public void paint(Graphics gp){
    
              super.paint(gp);
    
              Graphics2D gp2d = (Graphics2D) gp;

    使用Graphics2D进行绘制图形

    首先创建一个Demo1类继承JFrame类成为窗体,以便显示效果,在Demo1里创建一个内部类Plot类,该类继承JPanel类(容器,把图形放在这个容器里),

    public class Demo1 extends JFrame{
    
        private static final long serialVersionUID = 1L;
    
        //创建绘图面板
    
    class Plot extends JPanel{
    
     private static final long serialVersionUID = 1L;
    
    }

    Plot内部类重写panit()方法,再创建一个BasicStroke对象,Graphics2D可以调用setStroke方法设置笔画的属性,而这个方法要接受一个Stroke接口的实现类作为参数,这样可以通过不同的构造方法创建笔画属性的不同对象。

    class Plot extends JPanel{
    
          public void paint(Graphics gp){
    
              //笔画属性,
    
              BasicStroke bs = new BasicStroke( 10.1f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_BEVEL);
    
              super.paint(gp);
    
             Graphics2D gp2d = (Graphics2D) gp;
    
    }
    
    }

    paint方法里面进行绘图,(设置绘图颜色后,后面绘图都是采取这颜色作为前景色,如果需要更改为其他颜色的话,可以再次调用setColor()方法进行再次设置)

    class Plot extends JPanel{
    
          private static final long serialVersionUID = 1L;
    
          public void paint(Graphics gp){
    
              //笔画属性,
    
              BasicStroke bs = new BasicStroke( 10.1f,BasicStroke.CAP_ROUND,BasicStroke.JOIN_BEVEL);
    
              super.paint(gp);
    
              Graphics2D gp2d = (Graphics2D) gp;
    
              gp2d.setColor(Color.blue);
    
              //第一个点的x坐标,第一个点的y坐标,第二个点的x坐标,第二点的坐标
    
              gp2d.drawLine(30, 30, 80, 30);
    
              //绘制矩形的x坐标,绘制矩形的y坐标,矩形的宽度,矩形的高度
    
              gp2d.drawRect(10,50,100,50);
    
              //绘制矩形的x坐标,绘制矩形的y坐标,矩形的宽度,矩形的高度,4个角弧度的水平直径,4个角弧度的垂直直径
    
              gp2d.drawRoundRect(10, 120, 100, 70, 12, 12);
    
              gp2d.setColor(Color.black);
    
              gp2d.fillOval(20, 130, 30, 20);
    
              gp2d.fillOval(70, 130, 30, 20);
    
              gp2d.setColor(Color.gray);
    
              gp2d.fillArc(35, 160, 40, 25, 100, 270);
    
              Color c1 = new Color(22, 147, 140);//创建红绿蓝不透明的srgb颜色
    
              gp2d.setColor(c1);
    
              gp2d.drawOval(10, 200, 100, 60);//绘制椭圆的边框。
    
              //Graphics2D d=(Graphics2D) gp;
    
              gp2d.fill3DRect(150, 30, 100, 80, false);
    
              gp2d.fillOval(150,130, 100, 80);
    
              gp2d.setStroke(bs);//设置笔画属性
    
             gp2d.drawLine(300, 80, 300, 200);
    
          }
    
       }

    Demo类定义一个初始化窗体的方法,设置窗体大小,关闭窗体模式以及设置内容窗格等

    //初始化窗体
    
       private void initialize(){
    
          this.setSize(800, 600);
    
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体关闭模式
    
          setContentPane(new Plot());
    
          this.setTitle("绘图小Demo");
    
          this.setLocationRelativeTo(null);//窗体居中
    
          this.setVisible(true);//设置窗体的可见性
    
       
    
       }

    Demo类构造器 调用初始化方法

    public Demo1(){
    
          super();
    
          initialize();
    
       }

    主方法 创建实例

    public static void main(String[] args) {
          new Demo1();
       }

    效果:

    绘制图片:在图片上绘制字符串并输出成图片格式

    public static void main(String[] args) throws FileNotFoundException, IOException {
    
          // TODO Auto-generated method stub
    
          //获取图片缓冲区
    
           BufferedImage bi = new BufferedImage(80,40,BufferedImage.TYPE_INT_RGB);
    
           //得到绘制坏境(这张图片的笔)
    
           Graphics gh= (Graphics)bi.getGraphics();
    
           gh.setColor(Color.WHITE);//设置颜色
    
           gh.fillRect(0, 0, 80, 40);//填充整张图片(其实就是设置背景色)
    
           gh.setColor(Color.lightGray);
    
           //gh.drawRoundRect(0, 0, 130, 70, 130, 70);//绘制一个圆形边框
    
           gh.drawRect(0, 0, 80-1, 40-1);//绘制一个四边形边框
    
           gh.setFont(new Font("Bernard MT",Font.BOLD,18));//字体样式 字体格式 字体大小
    
           gh.setColor(Color.BLUE);//设置字体颜色
    
           gh.drawString(getNum(10,100), 22, 25);//向图片上写随机字符串
    
           ImageIO.write(bi, "PNG", new FileOutputStream("D:/test.png"));//把图片输出到指定路径

    随机生成字符串方法

    public static String getNum(int num1,int num2){
    
           //返回num1到num2之间的随机数
    
          Integer rand = num1 + (int)(Math.random()*(num2-num1));
    
          //System.out.println(rand);
    
          int a = (int)(Math.random()*100);
    
          //返回a~z随机的字符
    
          char char1 = (char)('a'+Math.random()*('z'-'a'+1));
    
          //返回A~Z随机的字符
    
          char char2 = (char)('a'+Math.random()*('Z'-'A'));
    
          return rand.toString()+char1+char2;
    
       }

    运行输出

     

    展开全文
  • 利用Java编写的java绘图软件,带有绘制多种图形功能和绘制字体功能
  • java简易绘图工具

    2011-04-16 00:11:38
    简单的绘图工具 运用了类的继承 多态 等
  • 用于java绘图,搭载于eclipse这个插件之中,方便好用!!!
  • 内容索引:JAVA源码,系统相关,Java绘图 没想到用JAVA还能写出这么一个绘图工具,原来JAVA的图像处理功能也很强,想学习一下的可不要错过哦!
  • java绘图原理

    2017-01-11 18:06:56
    //java绘图原理package com.test00; import javax.swing.*; import java.awt.*; //引入头文件 public class Demo9_1 extends JFrame{MyPanel mp=null; //初始化 public static void main(String[] args) { // T
  • java绘图

    2015-02-27 15:34:00
     JAVA绘图板 import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Color; import java.awt.Cursor; import java.awt.Dimension; import java.awt.Frame; import...
  • java swing 界面实现的画图小软件 可以适合初学者下载了看看
  • java 绘图板程序

    2012-12-31 10:54:18
    小型的绘图板程序(采用多文档结构),包括基本的菜单栏... (4)状态栏:显示当前绘图区域中鼠标的坐标、背景颜色、线条颜色、绘图工具;  (5)绘图区:实现多文档结构绘制十种基本图形,并附加橡皮擦,文本输入;
  • 1. Graphics 绘图画布 Graphics 类相当于一个画布,每个 Swing 组件都通过 Graphics 对象来绘制显示。绘图的原点位于组件的左上角,如下图所示: Graphics类中常用的绘制相关方法: ○ 参数 / 设置: // 创建....
  • Java绘图机制

    2013-08-21 11:07:00
    在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,本文主要讲述Java绘图机制,更多Java专业知识,广州疯狂java培训为你讲解;  Java的绘图...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,516
精华内容 11,406
关键字:

java绘图工具

java 订阅