drawpane.java

来自「Java编程100例,提供了很多经典实例来说明Java」· Java 代码 · 共 66 行

JAVA
66
字号
package jrasterdemo1;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.awt.image.*;class DrawPane extends JPanel{    BufferedImage bimage,bimage1,bimage2;    public DrawPane(){      Image image = this.getToolkit().getImage(ClassLoader.getSystemResource("images/image.jpg"));      MediaTracker mt = new MediaTracker(this);      mt.addImage(image,0);      try{        mt.waitForAll();      }catch(Exception err){        err.printStackTrace();      }      if (image.getWidth(this) == -1){        System.out.println("Could not get the image");        System.exit(-1);      }      this.setSize(image.getWidth(this),image.getHeight(this));      bimage1 = new BufferedImage(image.getWidth(this),image.getHeight(this),BufferedImage.TYPE_INT_ARGB);      Graphics2D g2D = bimage1.createGraphics();      g2D.drawImage(image,0,0,this);      bimage = bimage1;    }    public void turnBufferedImage(){      bimage2 = new BufferedImage(bimage1.getWidth(),bimage1.getHeight(),bimage1.getType());      DataBuffer db1 = bimage1.getRaster().getDataBuffer();      DataBuffer db2 = bimage2.getRaster().getDataBuffer();      for (int i=db1.getSize()-1,j=0;i>=0;i--,j++){        db2.setElem(j,db1.getElem(i));      }    }    public void update(Graphics g){      g.clearRect(0,0,this.getWidth(),this.getHeight());      this.paintComponent(g);    }    public void paintComponent(Graphics g){      super.paintComponent(g);      Graphics2D g2d = (Graphics2D)g;      g2d.drawImage(bimage,0,0,this);    }  }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?