下面是代码,注释里都写了 ^_^
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
public class ImageZoom extends JFrame
{
/**
*
*/
private static final long serialVersionUID = 1L;
private Image ima;
private JSlider jSlider;
private int imgWidth,imgHeight;
private MyCanvas canvas;
public ImageZoom()
{
super("绘制图片");
ima=Toolkit.getDefaultToolkit().getImage("G:\\sourse\\flawer.jpg");//获取图片资源
canvas = new MyCanvas(); //定义一个画板
add(canvas);
jSlider=new JSlider(); //初始化一个滑块
add(jSlider,BorderLayout.SOUTH);
setBounds(50,50,600,600);
setContentPane(getContentPane()); //设置面板内容
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jSlider.setMaximum(1000); //下面是对滑块的设置
jSlider.setValue(100);
jSlider.setMinimum(1);
jSlider.addChangeListener(new javax.swing.event.ChangeListener()
{
public void stateChanged(ChangeEvent e)
{
canvas.repaint(); //重新绘制画板的内容
}
});
}
public static void main(String[] args)
{
new ImageZoom().setVisible(true);
}
class MyCanvas extends Canvas
{
/**
*
*/
private static final long serialVersionUID = 1L;
public void paint(Graphics g)
{
int newW=0,newH=0;
imgWidth=ima.getWidth(this); //获取图片的宽度
imgHeight=ima.getHeight(this);
float value=jSlider.getValue(); //滑块的取值
newW=(int)(imgWidth*value/100); //计算图片放大后的宽度
newH=(int)(imgHeight*value/100);
g.drawImage(ima,50,50,newW,newH,this); //绘制指定大小的图片
}
}
}