package Test;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.net.URL;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class DynamicFlexImageFrame extends JFrame {
private Image img=null;
private DynamicFlexImagePane dynamicFlexImagePane=new DynamicFlexImagePane();
private Thread thread=null;
public static void main(String args[]){
DynamicFlexImageFrame frame=new DynamicFlexImageFrame();
frame.setVisible(true);
}
public DynamicFlexImageFrame(){
super();
setTitle("图片动态拉伸");
setBounds(200,160,340,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(dynamicFlexImagePane);
URL url=DynamicFlexImageFrame.class.getResource("/image/image.jpg");
img=Toolkit.getDefaultToolkit().getImage(url);
thread=new Thread(dynamicFlexImagePane);
thread.start();
}
class DynamicFlexImagePane extends JPanel implements Runnable{
private boolean flag=true;
int width=0;
int height=0;
public void paint(Graphics g){
g.clearRect(0, 0, getWidth(),getHeight());
g.drawImage(img, 0, 0, width, height, this);
}
public void run(){
while(true){
if(flag){
width+=2;
height++;
if(width>=getWidth()||height>=getHeight()){
flag=false;
}
}else {
width-=2;
height--;
if(width<=0||height<=0){
flag=true;
}
}
repaint();
try {
Thread.sleep(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}