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);
}
}

浙公网安备 33010602011771号