?? twopic.java
字號:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Twopic extends Applet implements MouseListener , MouseMotionListener{
Graphics g;
Image foreimg;
Image backimg;
Image offi;
int width;
int height;
boolean finishLoad =false;
boolean first_time = true;
int eraser_size = 50;
int oldX;
int oldY;
public void init(){
g = getGraphics();
width = size().width;
height = size().height;
String parameter = getParameter("picture1");
if(parameter != null)
foreimg = getImage(getCodeBase(),parameter);
parameter = getParameter("picture2");
if(parameter != null)
backimg = getImage(getCodeBase(),parameter);
offi = createImage(300, 400);
Graphics offg = offi.getGraphics();
offg.drawImage(foreimg,0,0, this);
addMouseMotionListener(this);
addMouseListener(this);
}
public boolean imageUpdate(Image img, int infoflags, int x, int y, int w,int h){
if(infoflags == ALLBITS){
finishLoad = true;
repaint();
return false;
}else
return true;
}
public void update(Graphics g){
paint(g);
}
public void paint(Graphics g){
if(!finishLoad)
g.drawString("loading image...", 25, 25);
else{
width = size().width;
height = size().height;
first_time = true;
g.drawImage(foreimg,0,0,width, height,this);
}
}
public void replace_image(int x, int y){
Graphics g2 = g.create();
g2.setXORMode(Color.white);
if(!first_time){
g2.drawRect(oldX, oldY, eraser_size, eraser_size);
first_time = true;
}
g2.setPaintMode();
g2.clipRect(x, y, eraser_size, eraser_size);
g2.drawImage(backimg, 0, 0, width, height, this);
}
public void mouseClicked(MouseEvent e){
}
public void mousePressed(MouseEvent e){
int x, y;
x = e.getX();
y = e.getY();
replace_image(x, y);
}
public void mouseReleased(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
public void mouseDragged(MouseEvent e){
int x, y;
x = e.getX();
y = e.getY();
replace_image(x, y);
}
public void mouseMoved(MouseEvent e){
Graphics g2 = g.create();
int x, y;
x = e.getX();
y = e.getY();
g2.setXORMode(Color.white);
if(first_time)
first_time = false;
else
g2.drawRect(oldX, oldY, eraser_size, eraser_size);
g2.drawRect(x, y, eraser_size, eraser_size);
oldX = x;
oldY = y;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -