java教程之Java绘图

合集下载

javadrawimage的用法

javadrawimage的用法

javadrawimage的用法javadrawimage是Java中用于绘制图像的一个方法。

它可以用于在Java应用程序中绘制图像,以及在GUI中显示图像。

javadrawimage的用法非常简单,只需要使用Graphics对象的drawImage()方法即可。

drawImage()方法接受三个参数:要绘制的图像对象、x坐标和y坐标。

例如,以下代码片段演示了如何使用javadrawimage方法将图像绘制在Java应用程序中:```import java.awt.Graphics;import java.awt.Image;import javax.swing.JFrame;import javax.swing.JPanel;public class DrawImage extends JPanel {private Image image;public DrawImage() {image =Toolkit.getDefaultToolkit().getImage('image.png');}public void paint(Graphics g) {g.drawImage(image, 0, 0, this);}public static void main(String[] args) {JFrame frame = new JFrame('Draw Image');frame.getContentPane().add(new DrawImage());frame.setSize(300, 300);frame.setVisible(true);}}```在上面的代码中,我们创建了一个继承自JPanel的类DrawImage,并覆盖了paint()方法,在其中调用了Graphics对象的drawImage()方法。

在main()方法中,我们创建了一个JFrame对象,并将DrawImage 对象添加到其中。

Java绘图之设置字型和颜色_Java教程

Java绘图之设置字型和颜色_Java教程

Java绘图之设置字型和颜色_Java教程Java绘图中,显示文字的方法主要有三种:(1)drawString(String str,int x,int y):在指定的位置显示字符串。

(2)drawChars(char data[],int offset,int length, int x, int y):在指定的位置显示字符数组中的文字,从字符数组的offset位置开始,最多显示length个字符。

(3)drawBytes(byte data[],int offset,int length,int x,int y), 在指定的位置显示字符数组中的文字,从字符数组的offset位置开始,最多显示length个字符。

这里给出的显示位置(x,y)为文字的基线的开始坐标,不是文字显示的矩形区域的左上角坐标。

文字字型有三个要素:∙字体:常用的字体有Times New Roman、Symbol、宋体、楷体等。

∙风格:常用的风格有三种:正常、粗体和斜体;分别用三个常量表示:Font.PLAIN(正常)、Font.BOLD(粗体)和Font.ITALIC(斜体)。

风格可以组合使用,例如,Font.BOLD+Font.ITALIC。

∙字号:字号是字的大小,单位是磅。

在Java语言中,用类Font对象字型。

Font类构造方法有:Font(String fontName,int style,int size),3个参数分别表示字体、风格和字号。

例如,代码:Font fnA = new Font(“细明本”,Font.PLAIN,12)设置的字型的是:细明体、正常风格,12磅字号。

Font类的其他常用方法:1.getStyle(),返回字体风格。

2.getSize(),返回字体大小。

3.getName(),返回字体名称。

4.isPlain(),测试字体是否是正常字体。

5.isBold(),测试字体是否是粗体。

6.isItalic(),测试字体是否是斜体。

Java的Graphics类进行绘图的方法详解

Java的Graphics类进行绘图的方法详解

Java的Graphics类进⾏绘图的⽅法详解Graphics类提供基本绘图⽅法,Graphics2D类提供更强⼤的绘图能⼒。

Graphics类提供基本的⼏何图形绘制⽅法,主要有:画线段、画矩形、画圆、画带颜⾊的图形、画椭圆、画圆弧、画多边形等。

1. 画线在窗⼝画⼀条线段,可以使⽤Graphics类的drawLine()⽅法:drawLine(int x1,int y1,int x2,int y2) 例如,以下代码在点(3,3)与点(50,50)之间画线段,在点(100,100)处画⼀个点。

g.drawLine(3,3,50,50);//画⼀条线段g.drawLine(100,100,100,100);//画⼀个点。

2. 画矩形有两种矩形:普通型和圆⾓型。

(1) 画普通矩形有两个⽅法:drawRect(int x,int y,int width,int height):画线框围起来的矩形。

其中参数x和y指定左上⾓的位置,参数width和height是矩形的宽和⾼。

fillRect(int x,int y,int width,int height):是⽤预定的颜⾊填充⼀个矩形,得到⼀个着⾊的矩形块。

以下代码是画矩形的例⼦:g.drawRect(80,100,40,25);//画线框g.setColor(Color.yellow);g.fillRect(20,70,20,30);//画着⾊块(2)画圆⾓矩形也有两个⽅法:drawRoundRect(int x,int y,int width, int height, int arcWidth, int arcHeight):是⽤线围起来的圆⾓矩形。

其中参数x和y指定矩形左上⾓的位置;参数width和heigth是矩形的宽和⾼;arcWidth和arcHeight分别是圆⾓弧的横向直径和圆⾓弧的纵向直径。

fillRoundRect(int x,int y,int width,int height,int arcWidth,int archeight):是⽤预定的颜⾊填充的圆⾓矩形。

java createdrawingpatriarch 使用实例

java createdrawingpatriarch 使用实例

java createdrawingpatriarch 使用实例Java中的createdrawingpatriarch方法用于创建Sheet的绘图管理器,可以对Sheet进行绘图操作。

绘图管理器中可以添加图形、绘制文本、设置填充颜色等,非常灵活实用。

本文将一步一步回答“java createdrawingpatriarch 使用实例”。

第一步:了解createdrawingpatriarch方法的基本用法在开始实例之前,我们需要了解createdrawingpatriarch方法的基本用法。

该方法是在Workbook接口中定义的,用于在Sheet中创建一个绘图管理器。

绘图管理器可以通过getCreationHelper().createDrawingPatriarch()方法来获取。

接下来的实例中,我们将使用POI库来操作Excel文件,具体使用步骤如下:1. 创建一个Workbook对象:Workbook workbook = new XSSFWorkbook();2. 创建一个Sheet对象:Sheet sheet = workbook.createSheet("Sheet1");3. 获取绘图管理器对象:Drawing drawing = sheet.createDrawingPatriarch();第二步:创建简单的图形下面我们来创建一个简单的图形,以便更好地理解createdrawingpatriarch方法的使用。

我们将创建一个圆形,并设置其位置和大小,代码如下:1. 创建一个绘图对象:XSSFDrawing drawing = (XSSFDrawing)sheet.createDrawingPatriarch();2. 定义圆形的位置和大小:int x = 100; 圆心的横坐标int y = 100; 圆心的纵坐标int width = 100; 圆的宽度int height = 100; 圆的高度3. 绘制圆形:XSSFClientAnchor anchor = drawing.createAnchor(x, y, x + width, y + height, 0, 0, 0, 0);XSSFSimpleShape circle = drawing.createSimpleShape(anchor); circle.setShapeType(ShapeTypes.ELLIPSE);第三步:绘制文本除了图形,我们还可以在Sheet中绘制文本。

Java双缓冲绘图技术

Java双缓冲绘图技术
1 : o aX1 =t i . e t 9 v I h s r cX; 2 : o aY1 = t i . e t — o a Heg t 0 v I hs r c Y v l ih /2 :
2 .方 椭 圆边 界 矩 形 的 左 上 角 坐 标
o aX2 = r cX , vl et o aY2 = o aY + rc Heg t ; vl vl 1 e t ih
1 Coor iC l r= C l r R 4: l l oo fl o o . ED;
1 : 5
1 :/ 6 /计算椭圆的绘制参数
1 : p bi odc lua e aC o dn t ) 7 u l v i ac lt Ov lo r ia e{ { c
1 : o aV i t = t i. e t it ; v lV d h 8 h s r c W d h
1 : it v l i h = 4 ; 1 n o a Heg t 0
1 : it v I ,o aY1 o aX ,o aY2 v l it 2 n aX1 v l , v l 2 v l ,o aW d h; o
1 : C lr u l e oo 3 o tn C lr=C lr LG T oo i oo . I H - A ; R Y
Jv 最 初 在 互 联 网 上 的 流 行 ,很 大 程 度 上 归 功 于 Jv p aa aaA —
pe。Jv 对 于 图 形 的 处 理 应 用 就 是 从 A pe 开 始 的 。 由 于 l t aa pl t
矩 形 的 高 度 以及 椭 圆 的 高 度 就 可 以 绘 制 一个 圆 柱体 了 。 C l d rj a 示 了 如 何 利 用 上 述 方 法 来 绘 制 一 个 圆 柱 yi e.a 演 n v 体 ,程 序 使 用 了 以下 几 个 方 法 : 1 acl e vloriae . l a O a odnt:利 用 上 面 的 关 系 公 式 计 算 上 、 ut C

Java标准教程:Java 2D绘图--第3章 基本几何图形

Java标准教程:Java 2D绘图--第3章 基本几何图形

Java标准教程:Java 2D绘图--第3章基本几何图形在之前的课程中,您已经学习了绘图的基本概念,包括坐标系和graphic对象创建的基本信息。

现在,您将了解2D 绘图类的更详细的信息。

本科展示如何使用Graphics2D类绘制基本的几何图形和任意的形状,以及如何使用花哨的轮廓和填充风格展示图形。

这些主题分为以下几个章节。

●绘制基本几何图形:本节展示如何创建标准的集合图形,例如点,线,曲线,圆弧,矩形和椭圆。

●绘制任意图形:本节展示如何直接使用基本几何图形组合绘制任意形状,使用GeneralPath类进行绘制。

●填充和笔画:本节解释如何设置笔画和打印属性,控制应用到Shape对象和文本的轮廓和填充风格。

1.1 绘制基本几何图形Java 2D API提供很多类,定义了基本的几何对象,例如点,线,弧线和矩形。

这些几何类是java.awt.geom包的一部分。

PathIterator接口定义了从路径中获取元素的方法。

Shape接口提供了一组描述和解析几何路径的对象。

这个接口由GeneralPath类和其他几何类实现。

本节的所有例子中创建的几何图形都使用java.awt.geom,然后使用Graphics2D类进行渲染。

要得到Graphics2D对象,可以cast paint()方法的Graphics参数:1.1.1 点Point类创建了位于坐标系中(x, y)位置的点。

子类Point2D.Float和Point2D.Double提供了使用float和double精度存储点。

要创建位于坐标系(0, 0)的点,使用默认的构造函数Point2D.Double()。

您可以使用setLocation方法设按照下面的方法设置点的位置:●setLocation(double x, double y):使用double坐标值设置点的位置。

●setLocation(Point2D p):使用坐标系中的其他点设置位置。

用java画布画玫瑰花

用java画布画玫瑰花

⽤java画布画玫瑰花RoseCanvas类package yan03;import java.awt.Canvas;import java.awt.Color;import java.awt.Graphics;public class RoseCanvas extends Canvas //四叶玫瑰线画布组件{private Color color; //颜⾊public RoseCanvas(Color color){this.setColor(color);}public void setColor(Color color){this.color = color;}public void paint(Graphics g) //在Canvas上作图{int x0 = this.getWidth()/2; //(x0,y0)是组件正中点坐标int y0 = this.getHeight()/2;g.setColor(this.color); //设置画线颜⾊g.drawLine(x0,0,x0,y0*2); //画X轴g.drawLine(0,y0,x0*2,y0); //画Y轴for (int j=40; j<200; j+=20) //画若⼲圈四叶玫瑰线for (int i=0; i<1023; i++) //画⼀圈四叶玫瑰线的若⼲点{double angle = i*Math.PI/512;double radius = j*Math.sin(2*angle); //四叶玫瑰线int x =(int)Math.round(radius * Math.cos(angle)*2);int y =(int)Math.round(radius * Math.sin(angle));g.fillOval(x0+x,y0+y,2,2); //画直径为1的圆就是⼀个点}}}RoseJFrame类package yan03;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class RoseJFrame extends JFrame implements ActionListener{private RoseCanvas canvas; //⾃定义画布组件public RoseJFrame(){super("四叶玫瑰线"); //框架边布局Dimension dim=this.getToolkit().getScreenSize(); //获得屏幕分辨率this.setBounds(dim.width/4,dim.height/4,dim.width/2,dim.height/2); //窗⼝居中this.setDefaultCloseOperation(EXIT_ON_CLOSE);JPanel jpanel = new JPanel(); //⾯板流布局,居中this.getContentPane().add(jpanel,"North");JButton button_color = new JButton("选择颜⾊");jpanel.add(button_color);button_color.addActionListener(this);this.canvas = new RoseCanvas(Color.red); //创建⾃定义画布组件this.getContentPane().add(this.canvas,"Center");this.setVisible(true);}public void actionPerformed(ActionEvent ev) //按钮动作事件处理⽅法{Color c=JColorChooser.showDialog(this,"选择颜⾊",Color.blue); //弹出JColorChooser颜⾊选择对话框,返回选中颜⾊this.canvas.setColor(c);this.canvas.repaint(); //调⽤canvas的paint(Graphics)⽅法,重画public static void main(String arg[]){new RoseJFrame();}}RoseNJFrame类package yan03;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class RoseNJFrame extends JFrame implements ActionListener,ComponentListener{private JRadioButton radiobutton[]; //单选按钮private JCheckBox checkbox; //复选框private RoseNCanvas canvas; //⾃定义画布组件public RoseNJFrame(){super("多叶玫瑰线"); //框架边布局Dimension dim=getToolkit().getScreenSize(); //获得屏幕分辨率this.setBounds(dim.width/4,dim.height/4,dim.width/2,dim.height/2); //窗⼝居中this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.addComponentListener(this); //注册组件事件监听器JToolBar toolbar=new JToolBar(); //创建⼯具栏,默认⽔平⽅向this.getContentPane().add(toolbar,"North"); //⼯具栏添加到框架内容窗格北部String rosestr[]={"⼀叶","四叶","三叶","⼋叶","五叶","⼗⼆叶","七叶","⼗六叶","九叶"};ButtonGroup bgroup = new ButtonGroup(); //按钮组radiobutton = new JRadioButton[rosestr.length]; //单选按钮数组for (int i=0; i<radiobutton.length; i++){radiobutton[i]=new JRadioButton(rosestr[i]); //单选按钮radiobutton[i].addActionListener(this);bgroup.add(radiobutton[i]); //单选按钮添加到按钮组toolbar.add(radiobutton[i]); //单选按钮添加到⼯具栏}radiobutton[0].setSelected(true); //设置单选按钮的选中状态checkbox = new JCheckBox("Y轴",false); //复选框toolbar.add(checkbox);checkbox.addActionListener(this); //复选框注册动作事件监听器JButton button_color = new JButton("选择颜⾊");toolbar.add(button_color);button_color.addActionListener(this);canvas = new RoseNCanvas(1,Color.red); //创建⾃定义画布组件this.getContentPane().add(canvas,"Center");this.setVisible(true);}public void actionPerformed(ActionEvent e) //按钮动作事件处理⽅法{if (e.getSource() instanceof JRadioButton) //选择⼀个颜⾊复选框for (int i=0; i<radiobutton.length; i++)if (e.getSource()==radiobutton[i]){canvas.setLeaf(i+1);break;}if (e.getSource()==checkbox){canvas.setAxis(checkbox.isSelected());if (e.getActionCommand().equals("Y轴"))checkbox.setText("X轴");elsecheckbox.setText("Y轴");}if (e.getActionCommand().equals("选择颜⾊")){Color c=JColorChooser.showDialog(this,"选择颜⾊",Color.blue); //弹出JColorChooser颜⾊选择对话框,返回选中颜⾊ canvas.setColor(c);}canvas.repaint(); //重画}public void componentResized(ComponentEvent e) //改变组件⼤⼩时canvas.repaint(); //重画}public void componentMoved(ComponentEvent e) {}public void componentHidden(ComponentEvent e) {}public void componentShown(ComponentEvent e) {}public static void main(String arg[]){new RoseNJFrame();}}class RoseNCanvas extends Canvas //画布组件{private int leaf; //多叶玫瑰线的叶数private boolean axis; //轴,默认Y轴private Color color; //颜⾊public RoseNCanvas(int leaf, Color color){this.axis = false;this.setLeaf(leaf);this.setColor(color);}void setLeaf(int leaf){this.leaf = leaf;}void setAxis(boolean axis){this.axis = axis;}void setColor(Color color){this.color = color;}public void paint(Graphics g) //在Canvas上作图{int x0 = this.getWidth()/2; //(x0,y0)是组件正中点坐标int y0 = this.getHeight()/2;g.setColor(this.color); //设置画线颜⾊g.drawLine(x0,0,x0,y0*2); //画X轴g.drawLine(0,y0,x0*2,y0); //画Y轴for (int j=40; j<200; j+=20) //画若⼲圈多叶玫瑰线for (int i=0; i<1023; i++) //画⼀圈多叶玫瑰线的若⼲点 {double angle = i*Math.PI/512, radius;if (!axis)radius = j*Math.sin(this.leaf*angle); //多叶玫瑰线沿X轴elseradius = j*Math.cos(this.leaf*angle); //多叶玫瑰线沿Y轴int x =(int)Math.round(radius * Math.cos(angle));int y =(int)Math.round(radius * Math.sin(angle));g.fillOval(x0+x,y0+y,2,2); //画直径为1的圆就是⼀个点 }}}。

Java程序设计——12图形绘制

Java程序设计——12图形绘制

unitsImage
绘制图像-2
• drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
– 将img中的一个矩形区域绘制到当前画布的一个矩形区域,且可拉伸。 – 透明的部分不绘制(gif图片可以指定一个透明色),用于绘制不规则图像。
赵志崑
输出文字
• 将字符串输出到特定位置:
– void drawString(String str, int x, int y)
(x,y) 见TextExample.java g.drawString("Hello World!",50,50); g.drawString("世界你好!",50,100);
150
赵志崑
设置颜色
• void setColor(Color c):将当前画笔颜色设置为c。 • Color getColor():读取当前画笔颜色。 • 颜色的构造: – 构造函数Color(int r, int g, int b):参数为红、绿、蓝的值(0-255)。 – 直接使用Color类中的静态对象:如Color.blue, Color.yellow, Color.orange, ……
– style:字体形式,为Font.PLAIN,Font.BOLD,Font.ITALIC。 – size:字体的高度,单位为像素。
• 这些设置字体的方法同样可以应用于组件上显示的字体。
见FontExample.java public void paintComponent(Graphics g) { super.paintComponent(g); g.setFont(new Font(fontName,fontStyle,fontSize)); g.drawString("Hello World!",50,50); g.drawString("世界你好!",50,100); }

javapaint方法

javapaint方法

javapaint方法在Java中,可以使用paint方法来实现对组件进行绘制的功能。

paint方法是Swing组件中的一个方法,用于进行组件的绘制操作。

下面将详细介绍Java的paint方法。

首先,paint方法是在组件需要被重绘时由Java虚拟机自动调用的,应用程序通常无需自己调用paint方法。

在组件首次显示时或需要进行重绘时,paint方法将自动被调用。

paint方法的方法签名如下:```public void paint(Graphics g)```paint方法的参数是一个Graphics对象,它提供了一系列的绘图方法用于完成绘制操作。

在paint方法中,通常需要完成以下几个步骤:1. 获取Graphics对象:用于绘制的Graphics对象可以通过paint方法的参数获取,此时可以使用Graphics对象的各种方法来完成绘制操作。

2. 设置绘图属性:在开始绘制之前,通常需要设置一些绘画属性,比如绘图颜色、线条粗细等。

Graphics对象提供了一系列用于设置绘画属性的方法,比如setColor、setStroke等。

3. 进行绘制操作:在绘制之前,需要确定绘制的内容和位置。

根据需要,可以使用Graphics对象的各种绘图方法,如drawLine、drawRect、fillRect等来绘制需要的图形。

4. 释放资源:绘制操作完成后,通常需要释放绘图资源,以便其他组件或画布进行绘制操作。

可以通过Graphics对象的dispose方法来释放绘图资源。

下面是一个简单的示例代码,展示了如何在一个JPanel类中使用paint方法进行绘制操作:```javaimport javax.swing.*;import java.awt.*;public class MyPanel extends JPanelpublic void paint(Graphics g)super.paint(g);//设置绘图属性g.setColor(Color.RED);//绘制操作g.drawLine(10, 10, 100, 100);g.drawRect(50, 50, 100, 100);g.fillRect(200, 200, 100, 100);//释放资源g.dispose(;}```在上面的代码中,首先继承了JPanel类,并重写了其paint方法。

java画图课程设计

java画图课程设计

java画图课程设计一、教学目标本节课旨在让学生掌握Java基本绘图方法,能够使用Java编写简单的图形界面程序。

1.了解Java绘图的基本概念和方法。

2.掌握Java中常用的绘图类和方法。

3.理解图形界面程序的设计原理。

4.能够使用Java编写简单的图形界面程序。

5.能够灵活运用Java绘图方法,实现基本的图形绘制。

6.能够根据需求,设计并实现简单的图形界面程序。

情感态度价值观目标:1.培养学生对计算机编程的兴趣和热情。

2.培养学生解决问题的能力和创新精神。

3.培养学生团队协作和交流的能力。

二、教学内容本节课的教学内容主要包括Java绘图的基本概念和方法,以及图形界面程序的设计原理。

1.Java绘图基本概念和方法。

2.Java中常用的绘图类和方法。

3.图形界面程序的设计原理。

4.实例演示和练习。

三、教学方法本节课采用讲授法、案例分析法和实验法相结合的教学方法。

1.讲授法:用于讲解Java绘图的基本概念和方法,以及图形界面程序的设计原理。

2.案例分析法:通过分析典型案例,让学生理解和掌握Java绘图的方法和技巧。

3.实验法:让学生通过实际操作,动手编写Java程序,巩固所学知识。

四、教学资源1.教材:《Java程序设计》。

2.参考书:《Java绘图教程》。

3.多媒体资料:PPT课件。

4.实验设备:计算机。

五、教学评估本节课的评估方式包括平时表现、作业和考试。

1.平时表现:通过课堂参与、提问和回答问题等方式,评估学生在课堂上的积极性和主动性。

2.作业:布置相关的绘图程序练习,评估学生对Java绘图方法的掌握程度。

3.考试:期末考试中包含Java绘图相关的题目,评估学生对Java绘图的全面理解和应用能力。

六、教学安排本节课的教学安排如下:1.教学进度:按照教材的章节顺序,逐步讲解Java绘图的基本概念和方法。

2.教学时间:每节课45分钟,其中30分钟用于讲授和案例分析,15分钟用于实验和实践。

3.教学地点:计算机实验室,确保学生能够直接进行绘图程序的编写和运行。

Java 绘制图形到PDF文档

Java 绘制图形到PDF文档

Java 在PDF文档中绘制图形本篇文档将介绍通过Java编程在PDF文档中绘制图形的方法。

包括绘制矩形、椭圆形、不规则多边形、线条、弧线、曲线、扇形等等。

针对方法中提供的思路,也可以自行变换图形设计思路,如菱形、梯形或者组合图形等。

使用工具:Free Spire.PDF for Java(免费版)Jar文件导入:步骤1:将安装包中lib文件夹下的两个文件复制到程序中新建的文件夹中(这里在程序中可新建一个文件夹并命名为Lib)步骤2:复制文件后,将两个添加引用到程序:选中这两个jar文件,点击鼠标右键,选择“Build Path”–“Add to Build Path”。

完成引用。

Java代码示例(供参考)import java.awt.Color;import java.awt.Point;import java.awt.geom.Rectangle2D;import com.spire.pdf.FileFormat;import com.spire.pdf.PdfDocument;import com.spire.pdf.PdfPageBase;import com.spire.pdf.graphics.*;public class DrawShapes {public static void main(String[] args) {//创建PdfDocument对象PdfDocument doc = new PdfDocument();//添加一页PdfPageBase page = doc.getPages().add();//创建画笔、画刷PdfPen pen =new PdfPen(new PdfRGBColor(Color.black),0.3);PdfBrush brush= PdfBrushes.getGreenYellow();//绘制矩形Rectangle2D.Float rect1 = new Rectangle2D.Float(0, 20, 120, 50);//创建Rectangle2D对象,并指定图形在PDF页面中的大小、位置PdfLinearGradientBrush linearGradientBrush = new PdfLinearGradientBrush(rect1,new PdfRGBColor(Color.PINK),new PdfRGBColor(Color.YELLOW),PdfLinearGradientMode.Horizontal);//填充图形颜色page.getCanvas().drawRectangle(linearGradientBrush, rect1);//绘制矩形到页面//绘制椭圆Point centerStart= new Point(205,45);Point centerEnd= new Point(205,45);PdfRadialGradientBrush radialGradientBrush = new PdfRadialGradientBrush(centerStart,0,centerEnd,60,newPdfRGBColor(Color.white),new PdfRGBColor(Color.cyan));Rectangle2D.Float rect2= new Rectangle2D.Float(180, 20, 50, 50);page.getCanvas().drawEllipse(radialGradientBrush,rect2);//绘制多边形Point p1=new Point(290,70);Point p2=new Point(310,45);Point p3=new Point(325,60);Point p4=new Point(340,20);Point p5=new Point(370,70);Point[] points = {p1, p2, p3, p4, p5};page.getCanvas().drawPolygon(pen,brush, points);//绘制弧形float startAngle = 0;float sweepAngle = 270;Rectangle2D.Float rect3= new Rectangle2D.Float(0, 110, 50, 50);page.getCanvas().drawArc(pen, rect3, startAngle, sweepAngle);//绘制扇形Rectangle2D.Float rect4= new Rectangle2D.Float(70, 110, 50, 50);page.getCanvas().drawPie(pen, rect4, startAngle, sweepAngle);//绘制直线Point pStart=new Point(205,110);Point pEnd=new Point(205,160);page.getCanvas().drawLine(pen, pStart, pEnd);//绘制贝塞尔曲线Point startPoint = new Point(290, 135);Point firstControlPoint = new Point(330, 70);Point secondControlPoint = new Point(330, 200);Point endPoint = new Point(370, 135);page.getCanvas().drawBezier(pen, startPoint, firstControlPoint, secondControlPoint, endPoint);//保存文档doc.saveToFile("DrawShapes.pdf",FileFormat.PDF);}}完成代码后,运行程序,生成文档。

java教程之Java绘图

java教程之Java绘图

(4) fillRoundRect() 调 用 格 式 为 : fillRoundRect(int x,int y,int width,int height,int arcW,int arcH) 方法作用:以(x,y)为矩形的左上角顶点,绘制一 个宽、高分别为width和height可有填充色的圆角 矩形。 方法中的参数解释如下:x,y——所绘矩形左上角坐 标 。 Width,height — — 所 绘 矩 形 的 宽 和 高 。 arcW,arcH分别为所绘矩形圆角的宽和高。 与drawRoundRect()的区别:该方法所绘制的圆角矩 形中可有填充色。 该方法的使用举例如下:
例9.10 import java.applet.*; import java.awt.*; public class Draw_arc extends Applet { public void paint(Graphics g) { g.setColor(Color.red); g.fillArc(0,40,100,100,0,180); g.fillArc(300,40,30,100,0,360); g.fillArc(200,100,50,50,0,270); } }
(2)、fillArc() 调 用 格 式 : fillArc(int x,int y,int width,int height,int anglestart,int angleend) 作用:绘制一段着色圆弧(扇形)。 参数解释:x,y——该圆弧外接矩形的左上角 坐标。Width,height——该圆弧外接矩形 的宽和高。Anglestart,angleend——该 圆弧的起始角和终止角,单位为“度”。 “0”(零)度角为x轴的正方向。正的角 度按逆时针方向旋转;负的角度按顺时针 方向旋转。 该方法举例如下:

Java 常用图形的绘制与填充

Java  常用图形的绘制与填充
shape[1][3] = new QuadCurve2D.Double(0,0,w,h/6,w,h); //二次曲线
shape[1][4] = new CubicCurve2D.Double(0,0,w/2,h,w, h/2,w,h); //三次曲线
//绘制几何图形的名称
String[][] shapeName = {{"直线","矩形","圆角矩形","圆","椭圆"},{"开弧","弓形","饼形","二次曲线","三次曲线"}};
import java.awt.event.*;
import java.awt.geom.*;
(3)创建GraphicsShapeDemo类的构造方法,设定窗口的大小、标题并往窗口中添加内容窗格,代码如下所示。
GraphicsShapeDemo() {
super("常用图形的绘制与填充"); //调用父类构造器设置窗口标题栏
J
(1)在【文件】菜单下选择【新建】|【类】命令,在弹出的对话框【新建Java类】中,创建GraphicsShapeDemo.java文件,如图11-15所示。
图11-15新建Java类
(2)添加程序中要用到的程序包,代码如下所示。
import java.awt.*;
import javax.swing.*;
int cirlceD = Math.min(w, h); //圆的直径
Shape[][] shape = new Shape[2][5];
shape[0][0] = new Line2D.Float(0,0,w,h); //直线

绘图java绘图绘制圆与多边形drawOvalfillOvaldrawArcfillArc

绘图java绘图绘制圆与多边形drawOvalfillOvaldrawArcfillArc
数组中的三个常量分别代表三角形顶点的三个y轴坐标绘制圆与多边形软件编程基础而应介绍房内空调开关及棉被加枕的位置
绘制圆与多边形
椭圆形 绘制椭圆形的方法是 drawOval(x ,y , width , height),
绘制实心椭圆形的方法是 fillOval(x ,y , width , height)。 其中x、y、width、height为整型参数。
软件编程基础
绘制圆与多边形
圆角矩形 绘制圆角矩形的方法是 drawRoundRect(x ,y , width , height , startAngle ,arcAngle), 绘制实心圆角矩形的方法是 fillRoundRect(x ,y , width , height , arcWidth ,arcHeight), 其中x、y、width、height、arcWidth、arcHeight为整型 参数。
它有4个参数: x、y分别为包围椭圆的矩形左上角端点的x、y轴坐标; width为椭圆形的宽度; height为椭圆形的高度。
注意:当width、height的值相等时,绘制的图形为正圆形。
软件编程基础
绘制圆与多边形
例: import java.awt.*; import java.applet.Applet; public class Oval extends Applet {
软件编程基础
绘制圆与多边形
例: import java.awt.*; import java.applet.Applet; public class Arc extends Applet {
public void paint(Graphics g) {
g.drawArc(50,50,50,50,30,150); //参数g调用绘制弧线的方法drawArc() g.fillArc(100,50,100,50,0,-90); //参数g调用绘制扇形的方法fillArc() } }

java绘图(基于Graphics2D)

java绘图(基于Graphics2D)

java绘图(基于Graphics2D)1.绘图基本操作请参考下⾯基础⽰例:1int width = 200, height = 250;2//创建图⽚对象3 BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR);4//基于图⽚对象打开绘图5 Graphics2D graphics = image.createGraphics();6//绘图逻辑 START (基于业务逻辑进⾏绘图处理)……78//绘制圆形9 graphics.setColor(Color.BLACK);10 Ellipse2D.Double ellipse = new Ellipse2D.Double(20, 20, 100, 100);11 graphics.draw(ellipse);1213// 绘图逻辑 END14//处理绘图15 graphics.dispose();16//将绘制好的图⽚写⼊到图⽚17 ImageIO.write(image, "png", new File("abc.png"));如上代码所⽰,使⽤java绘图基本操作流程如下: a.得到⼀个 BufferedImage ,可以是直接指定分辨率new⼀个空图⽚,也 b.基于此BufferedImage 创建⼀个绘图对象,使⽤createGraphics ⽅法,得 Graphics2D 实例 c.使⽤Graphics2D 实例进⾏画图,所有绘图坐标基于创建此Graphics2D 的BufferedImage。

⽰例中在图⽚上画了⼀个圆形。

d.调⽤Graphics2D 对象的 dispose() ⽅法,进⾏绘图处理,使绘图效果应⽤到BufferedImage 对象 e.使⽤ImageIO类的write函数将图⽚对象转换到⽂件或⼆进制流上⾯是使⽤java进⾏绘图的基本流程,其中步骤c涉及到很多绘图细节。

Java2D高级绘图[教材]

Java2D高级绘图[教材]

Java 2D高级绘图【教学目标】在本讲中希望您能掌握和了解如下知识点:Graphics类,如何获取Graphics类,文本字串的显示,图形编程,图像编程以及Java2D高级编程技术等。

1.1.利用Graphics类的绘图技术1、AWT图形、文本、图像绘制编程(1)有关的类:主要涉及java.awt包中的Graphics类。

(2)Graphics类对象:它代表当前组件如窗口的绘图环境。

(3)绘制函数调用Graphics类中的相应的绘制图形、绘制文本、绘制图像等函数以实现在图形窗口下输出图形、文本、图像等。

图4--1(4)编程方法在组件的paint()函数内或在组件的其它函数内如事件响应函数内获得java.awt包中的Graphics类的对象,然后调用Graphics类中相应的绘制函数来实现输出。

(5)paint()函数它是在ponent 类(所有窗口对象的基类)所提供的一个方法,当系统需要重新绘制组件时,将调用该方法。

paint() 方法只有一个参数,该参数是Graphics 类的实例。

下面给出一个实例。

public void paint(Graphics g){ Color myColor= new Color(255, 0, 0);g.setColor(myColor);g.drawString("这是Java中的带颜色的文字串", 100,100) ;g.drawRect( 10,10,100 ,100) ;}2、组件绘制的时机(1)组件外形发生变化时:如窗口的大小、位置、图标化等显示区域更新时,AWT自动从高层直到叶结点组件相应地调用各组件的paint()方法,但这可能有一个迟后感。

(2)程序员也可直接调用某一个组件的repaint()或paint() ,以立即更新外观(如在添加新的显示内容后)。

注意:如果要求保留上次的输出结果时可以调用paint(),而不要求保留上次的输出结果只希望用户能看到最新的输出结果时可以调用repaint()。

java绘图课程设计

java绘图课程设计

java绘图课程设计一、课程目标知识目标:1. 让学生掌握Java绘图基本概念,理解Java图形用户界面(GUI)编程原理;2. 学会使用Java中的绘图相关类和接口,如Graphics、Graphics2D等;3. 了解Java中的颜色、字体和图像处理方法。

技能目标:1. 培养学生运用Java编程实现基本图形绘制、图像显示和动画效果的能力;2. 提高学生在Java项目中运用绘图技术解决实际问题的能力;3. 培养学生自主学习和团队合作的能力,通过项目实践,提高编程技能。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养良好的编程习惯;2. 培养学生积极思考、勇于探索、善于合作的精神;3. 增强学生的创新意识,培养审美观念,提高作品质量。

课程性质:本课程为Java编程的进阶课程,以实践操作为主,结合理论知识,旨在提高学生的编程技能和实际应用能力。

学生特点:学生已经掌握了Java编程基础,具有一定的编程能力和逻辑思维能力。

教学要求:结合实际案例,引导学生自主学习,注重实践操作,培养团队协作能力,提高编程水平和解决问题的能力。

将课程目标分解为具体的学习成果,便于后续教学设计和评估。

二、教学内容1. Java绘图基础- Java图形用户界面(GUI)编程原理- AWT绘图包和Swing绘图组件- Graphics类和Graphics2D类的常用方法2. 基本图形绘制- 线条、矩形、椭圆、圆弧等基本图形的绘制- 颜色、字体设置- 画笔和填充效果3. 图像处理- 图像加载和显示- 图像旋转、缩放、平移等变换操作- 图像合成与透明度处理4. 动画制作- 帧动画原理- 定时器使用- 动画效果实现5. 项目实践- Java绘图综合案例:设计与实现一个简易画图软件- 团队合作:分组完成一个绘图项目,如迷宫游戏、简单动画等- 作品展示与评价教学内容安排与进度:1. 第1周:Java绘图基础,熟悉GUI编程原理和绘图相关类2. 第2周:基本图形绘制,掌握绘图方法及颜色、字体设置3. 第3周:图像处理,学习图像加载、显示及变换操作4. 第4周:动画制作,了解动画原理,实现基本动画效果5. 第5周:项目实践,分组进行项目设计与实现,作品展示与评价教材章节关联:1. Java绘图基础:第X章 Java图形用户界面编程2. 基本图形绘制:第X章 Java绘图技术3. 图像处理:第X章 图像处理与显示4. 动画制作:第X章 动画设计与实现5. 项目实践:综合前面所学内容,进行实际应用和创新设计。

画图Java教程

画图Java教程

1.总体分为3个类:PaintFrame:画界面及界面控件触发(2次课)PaintPanel继承Canvas:主要实现鼠标拖拽功能根据鼠标拖拽动作划线(3次课)(Canvas,直接继承自Component组件,主要用于绘图,没有控件,更原始,Panel,继承自Container容器,主要用于镶嵌在其他控件里面当面板。

)PaintingProperties:存储当前选择的颜色、粗细、形状,所以包含三个成员变量,每个成员变量都有初始值,并实现三个成员变量的set和get方法。

(1次课)2.PaintFrame的界面仅供参考,其中凹进去的panel是选择粗细的控件,如果觉得有难度的同学可以使用JRadioButton或者下拉列表JComboBox实现:左边的图形可以使用按钮实现,但是界面效果不是很好菜单使用JMenuBar实现,代码示例:JMenuBar bar = new JMenuBar();JMenu menuFile = new JMenu("文件");JMenuItem createItem = new JMenuItem("清屏");menuFile.add(createItem);使用的JPanel默认颜色比较深,可以使用如下背景色leftPanel.setBackground(new Color(210,210,210));按钮初始化代码示例:for(int i = 0; i < SHAPENUM ; i++){if(i != 1){shapeButton[i] = new JButton(new ImageIcon(".//images//"+i + "0.gif"));}else{shapeButton[i] = new JButton(new ImageIcon(".//images//"+i + "1.gif"));}shapeButton[i].setBorder(BorderFactory.createRaisedBevelBorder());shapeButton[i].setBounds(2+i%2*27, 2+i/2*27, 27, 27);leftPanel.add(shapeButton[i]);shapeButton[i].addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {JButton b=(JButton) e.getSource();ImageIcon icon = (ImageIcon) b.getIcon();String iconPath = icon.getDescription();int pos = stIndexOf(".gif");String flag = iconPath.substring(pos-1,pos);int shapeNum = Integer.parseInt(iconPath.substring(stIndexOf("//")+2, pos-1));if(flag.equals("0")){b.setIcon(new ImageIcon(".//images//"+shapeNum + "1.gif"));shapeButton[lastShape].setIcon(new ImageIcon(".//images//"+lastShape+"0.gif"));……..}//if}});}颜色的实现是一个JPanel和36个JButton组成,代码示例:Panel cbPanel = new JPanel();cbPanel.setBackground(Color.black);JButton []colorJP = new JButton[36];int n = 0;for(int i = 1 ; i <= 255 ;i += 127){for(int j = 1 ; j <= 255 ;j += 127){for(int m = 1 ; m <= 255 ;m += 64){colorJP[n] = new JButton();colorJP[n].setBackground(new Color(i-1,j-1,m-1));colorJP[n].setBounds(41+n/2*17, 15+n%2*18, 15, 15);colorJP[n].setBorder(BorderFactory.createLoweredBevelBorder());colorJP[n++].addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {JButton b=(JButton) e.getSource();paitingProperties.setcolor(b.getBackground());cbPanel.setBackground(b.getBackground());//获取当前的颜色并设置PaintingProperties的颜色}});//将按钮加入面板并将n++}}}上面示例中出现了颜色的触发事件,其他的触发事件如下:(1)将当前图片换为有阴影的图片,原图片设置为没有阴影的图片,获取当前的形状(使用1,2,….等表示)并设置PaintingProperties的形状;(2)选择RadioButton或者下拉列表JComboBox选择颜色后设置PaintingProperties的粗细程度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例9.6import java.awt.Graphics; import java.applet.Applet; import java.awt.Color; class drawR { protected int x,y,width,height,arw,arh; drawR(int a,int b,int c,int d,int w,int h) { x=a; y=b; width=c; height=d; arw=w; arh=h;} } public class showdrawR extends Applet { drawR t; public void paint(Graphics g) { t=new drawR(35,35,50,100,20,20);
9.1.3 绘制3D矩形
顾名思义,就是java语言所具有的三维矩形绘制功 能,它是利用draw3DRect()和fill3DRect()函数 来实现的。 (1)、Draw3DRect() 调 用 格 式 : draw3DRect(int x,int y,int width,int height,Boolean b) 功能:以左上角坐标为(x,y),用指定的宽width 和高height绘制一个三维矩形。当变量b的值为 true 时 , 所 绘 矩 形 为 凸 起 的 ; 当 变 量 b 的 值 为 false时,所绘矩形为下凹的。 参数介绍如下:x,y——三维矩形的左上角坐标; width,height——三维矩形的宽和高。
(4) fillRoundRect() 调 用 格 式 为 : fillRoundRect(int x,int y,int width,int height,int arcW,int arcH) 方法作用:以(x,y)为矩形的左上角顶点,绘制一 个宽、高分别为width和height可有填充色的圆角 矩形。 方法中的参数解释如下:x,y——所绘矩形左上角坐 标 。 Width,height — — 所 绘 矩 形 的 宽 和 高 。 arcW,arcH分别为所绘矩形圆角的宽和高。 与drawRoundRect()的区别:该方法所绘制的圆角矩 形中可有填充色。 该方法的使用举例如下:
(3)、drawroundRect() 调 用 格 式 为 : drawRoundRect(int x,int y,int width,int height,int arcW,int arcH) 作用:以(x,y)为矩形的左上角顶点,绘制 一个宽、高分别为width和height的圆角矩 形。 方法中的参数解释如下:x,y——所绘矩形左 上角坐标。Width,height——所绘矩形的 宽和高。arcW,arcH分别为所绘矩形圆角的 宽和高。 该方法的使用举例如下:
9.1.4 绘制弧形 Graphics类绘制弧形的函数有两个:drawArc()和 fillArc(),前一个用于绘制无填充色的弧形,后 一个用于绘制有填充色的弧形。 (1)、drawArc() 调 用 格 式 : drawArc(int x,int y,int width,int height,int anglestart,int angleend) 作用:绘制一段圆弧。 方法中参数解释:x,y——该圆弧外接矩形的左上角 坐标。Width,height——该圆弧外接矩形的宽和 高。Anglestart,angleend——该圆弧的起始角 和终止角,单位为“度”。“0”(零)度角为x 轴的正方向。正的角度按逆时针方向旋转;负的 角度按顺时针方向旋转。 该方法举例如下:
(2)、fill3DRect() 调 用 格 式 : fill3DRect(int x,int y,int width,int height,Boolean b) 功能:以左上角坐标为(x,y),用指定的宽 width和高height绘制一带有填充色的三维 矩形。当变量b的值为true时,所绘矩形为 凸起的;当变量b的值为false时,所绘矩 形为下凹的。 参数介绍如下:x,y——三维矩形的左上角坐 标;width,height——三维矩形的宽和高。 举例如下:
例9.9 import java.applet.*; import java.awt.*; public class Draw_arc extends Applet { public void paint(Graphics g) { g.setColor(Color.red); g.drawArc(0,40,100,100, 0,180); g.drawArc(300,40,30,100, 0,360); g.drawArc(200,100,50,50, 0,270); } }
举例如下: 例9.1 drawLine(2,3,2,7) 此语句的作用是绘制出一条起始点坐标为(2,3)和终止点坐标 为(2,7)的直线。 例9.2 import java.applet.*; import java.awt.*; public class Draw_line extends Applet { public void paint(Graphics g) { g.setColor(Color.red); g.drawLine(2,4,12,400); g.drawLine(40,80,100,200); g.drawLine(0,0,500,500); } }
9.1.2 绘制矩形
Java学习必须了解的一点,随着日新月异的技术进步,java不断在更新,你或 许在网上搜索过很多资源,但是最新的你或许还没有享受到,在这群里每日分享 腾讯\阿里等大型技术,前面是三三四中间是一五七,结尾是八一零。相信你也会 在这里 graphics类绘制矩形的方法有四个,它们分别为drawRect()、fillRect()、 drawRoundRect()、fillRoundRect()。其各自的使用格式和作用分述如下: (1)、drawRect() 调用格式:drawRect(int x,int y,int width,int height) 作用:以(x,y)为矩形的左上角顶点,绘制一个宽、高分别为width和height的矩形。 方法中的参数解释如下: x,y——所绘制矩形左上角坐标。
Width,height——所绘制矩形的宽和高。
该方法的使用举例如下: 例9.3 import java.awt.Graphics; import java.applet.Applet; import java.awt.Color; class drawR { protected int x,y,width,height; drawR(int a,int b,int c,int d) { x=a; y=b; width=c; height=d; } } public class drawRect extends Applet { drawR t; public void paint(Graphics g)
(2)、fillArc() 调 用 格 式 : fillArc(int x,int y,int width,int height,int anglestart,int angleend) 作用:绘制一段着色圆弧(扇形)。 参数解释:x,y——该圆弧外接矩形的左上角 坐标。Width,height——该圆弧外接矩形 的宽和高。Anglestart,angleend——该 圆弧的起始角和终止角,单位为“度”。 “0”(零)度角为x轴的正方向。正的角 度按逆时针方向旋转;负的角度按顺时针 方向旋转。 该方法举例如下:
例9.5 import java.awt.Graphics; import java.applet.Applet; import java.awt.Color; class drawR { { protected int x,y,width,height,arw,arh; drawR(int a,int b,int c,int d,int w,int h) x=a; y=b; width=c; height=d; arw=w; arh=h;} } public class showdrawR extends Applet { { drawR t; public void paint(Graphics g) t=new drawR(35,35,绘制椭圆的函数有两个:drawOval() 和fillOval(),前一个用于绘制无填充色的椭圆, 后一个用于绘制有填充色的椭圆。 (1)、drawOval() 调用格式:drawOval(int x,int y,int width,int height) 作用:绘制一个椭圆。 参 数 解 释 : x,y — — 该 椭 圆 的 中 心 坐 标 。 Width,height——该椭圆的宽和高。
该方法的使用举例如下: 例9.4 import java.awt.Graphics; import java.applet.Applet; import java.awt.Color; class drawR { protected int x,y,width,height; drawR(int a,int b,int c,int d) { x=a; y=b; width=c; height=d; } } public class showdrawR extends Applet { drawR t; public void paint(Graphics g)
第9章 Java绘图 本章要点: 1、Graphics类 2、 Graphics2D类 3、Color类 4、Font类 5、图像的处理
9.1 Graphics类 9.1.1 绘制直线
graphics类绘制直线的方法是drawLine() 调用格式为:drawLine(int x1,int y1,int x2,int y2) 作用:自(x1,y1)点开始至 (x2,y2)点结束绘制一条直线。 方法中参数解释:X1,y1,x2,y2分别为所绘直线的起始点坐 标(x1,y1)和终止点坐标(x2,y2)。
举例如下: 例9.7 import java.awt.*; import java.applet.*; public class Draw_rec extends Applet { public void paint(Graphics g) { g.setColor(Color.red); g.draw3DRect(10,150,100,100, false); }
相关文档
最新文档