java--绘图

实例1:绘图

package com.etc.web;

import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

import org.omg.CORBA.INITIALIZE;

public class DrawCircle extends JFrame
{
	private final int OVAL_WIDTH=80;//圆形宽
	private final int OVAL_HEIGHT=80;//圆形高
	public DrawCircle() 
	{
		super();
		inittialize();//调用初始化方法
	}
	private void inittialize()//初始化方法
	{
		this.setSize(300, 200);//设置窗体大小
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体关闭模式
		setContentPane(new DrawPanel());//设置窗体面板为绘图面板对象
		this.setTitle("绘图实例:");//设置窗体标题
	}
	class DrawPanel extends JPanel//创建绘图面板
	{
		public void paint(Graphics g)
		{
			super.paint(g);
			g.drawOval(10, 10, OVAL_WIDTH, OVAL_HEIGHT);//绘制第1个圆形
			g.drawOval(80, 10, OVAL_WIDTH, OVAL_HEIGHT);//绘制第2个圆形
			g.drawOval(150, 10, OVAL_WIDTH, OVAL_HEIGHT);//绘制第3个圆形
			g.drawOval(50, 70, OVAL_WIDTH, OVAL_HEIGHT);//绘制第4个圆形
			g.drawOval(120, 70, OVAL_WIDTH, OVAL_HEIGHT);//绘制第5个圆形
			
		}
	}
	public static void main(String[] args) {
		new DrawCircle().setVisible(true);
	}
}

  

实例2:绘图

package com.etc.web;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class DrawFrame extends JFrame
{
	public DrawFrame() 
	{
		super();
		initialize();
	}
	private void initialize()
	{
		this.setSize(300,200);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		add(new CanvasPanel());
		this.setTitle("绘图实例2");
	}
	class CanvasPanel extends JPanel
	{
		public void paint(Graphics g)
		{
			super.paint(g);
			Graphics2D g2=(Graphics2D) g;
			Shape[] shapes=new Shape[4];//声明图形数组
			shapes[0]=new Ellipse2D.Double(5, 5, 100, 100);//创建圆形对象
			shapes[2]=new Rectangle2D.Double(15, 15, 80, 80);//创建矩形对象
			shapes[1]=new Rectangle2D.Double(110, 5, 100, 100);//创建矩形对象
			shapes[3]=new Ellipse2D.Double(120, 15, 80, 80);//创建圆形对象
			for(Shape shape:shapes)
			{
				Rectangle2D bounds= shape.getBounds2D();
				if(bounds.getWidth()==80)
				{
					g2.fill(shape);//填充图形
				}
				else
				{
					g2.draw(shape);//绘制图形
				}
			}
		}
	}
	public static void main(String[] args) 
	{
		new DrawFrame().setVisible(true);

	}

}

  

实例3:显示文本

package com.etc.web;

import java.awt.Canvas;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.Rectangle2D;
import java.util.Date;

import javax.swing.JFrame;

public class DrawString extends JFrame
{
	private Shape rect;
	private Font font;
	private Date date;
	public DrawString()
	{
		rect=new Rectangle2D.Double(10, 10, 200, 80);
		font=new Font("宋体", Font.BOLD, 20);
		date=new Date();
		this.setSize(300, 400);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		add(new CanvasPanel());
		this.setTitle("绘制文本");
	}
	class CanvasPanel extends Canvas
	{
		public void paint(Graphics g)
		{
			super.paint(g);
			Graphics2D g2=(Graphics2D) g;
			g2.setColor(Color.CYAN);
			g2.fill(rect);
			g2.setColor(Color.BLUE);
			g2.setFont(font);
			g2.drawString("现在时间是:", 20, 30);
			g2.drawString(String.format("%tr", date), 50, 60);
		}
		
	}
	public static void main(String[] args) 
	{
		new DrawString().setVisible(true);

	}

}

  

实例4图片展示:

package com.etc.web;

import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.net.URL;

import javax.swing.JFrame;

public class DrawImage extends JFrame
{
	Image img;
	class CanvasPanel extends Canvas
	{
		public void paint(Graphics g)
		{
			super.paint(g);
			Graphics2D g2=(Graphics2D) g;
			g2.drawImage(img, 0, 0, this);
		}
	}
	public DrawImage()
	{
		URL imgUrl=DrawImage.class.getResource("/004.jpg");//获取图片资源路径
		img=Toolkit.getDefaultToolkit().getImage(imgUrl);//获取图片资源
		this.setSize(400,300);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		add(new CanvasPanel());
		this.setTitle("绘制图片");
	}
	public static void main(String[] args) 
	{
		new DrawImage().setVisible(true);

	}

}

  

实例5:图片放大缩小

package com.etc.web;

import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.net.URL;

import javax.swing.JFrame;
import javax.swing.JSlider;

public class ImageZoom extends JFrame
{
	Image img;
	Canvas canvas;
	int imgWidth;
	int imgHeight;
	JSlider jSlider;
    public ImageZoom()

      {
        initialize();
      }

      private void initialize()

	{
		URL imgUrl=DrawImage.class.getResource("/004.jpg");//获取图片资源路径
		img=Toolkit.getDefaultToolkit().getImage(imgUrl);//获取图片资源
		canvas=new MyCanvas();
		this.setBounds(100, 100, 800, 600);//设置窗体大小和位置
		this.setContentPane(getContentPanel());
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setTitle("绘制图片");
	}
	//省略布局方法代码
	private JSlider getJSlider()
	{
		if(jSlider==null)
		{
			jSlider=new JSlider();
			jSlider.setMaximum(1000);//滑块最大取值
			jSlider.setValue(100);//设置当前值
			jSlider.setMinimum(1);//最小取值
			//添加滑块改变事件
			jSlider.addChangeListener(new javax.swing.event.ChangeListener()
			{
				public void stateChanged(javax.swing.event.ChangeEvent e)
				{
					canvas.repaint();//重新绘制画板内容
				}
			});
		}
			
		return jSlider;
	}
	class MyCanvas extends Canvas
	{
		public void paint(Graphics g)
		{
			int newW=0;
			int newH=0;
			imgWidth= img.getWidth(this);
			imgHeight=img.getHeight(this);
			float value=jSlider.getValue();
			newW=(int)(imgWidth*value/100);
			newH=(int)(imgHeight*value/100);
			g.drawImage(img, 0, 0, newW, newH, this);
		}
	}
	public static void main(String[] args) 
	{
		new ImageZoom().setVisible(true);
	}

}

  

原文地址:https://www.cnblogs.com/ipetergo/p/6242189.html