zoukankan      html  css  js  c++  java
  • 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);
    	}
    
    }
    

      

  • 相关阅读:
    基于express框架的Token实现方案
    书籍整理
    openfire4.0.2开发环境搭建(windows)
    Express4.x动态的销毁或者替换中间件(app.unuse)
    mysql学习笔记(三)----函数
    mysql学习笔记(二)----数据类型
    mysql学习笔记(一)----建表操作
    Windows-mysql5.7安装
    JavaScript学习笔记–(new关键字)
    n枚硬币问题(找假币)
  • 原文地址:https://www.cnblogs.com/ipetergo/p/6242189.html
Copyright © 2011-2022 走看看