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