import java.awt.BorderLayout;
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.JPanel;
import javax.swing.JSlider;
public class ImageZoom
extends JFrame {
private JPanel contentPanel
= null;
private int imgWidth, imgHeight;
// 主方法
public static void main
(String[] args
) {
new ImageZoom().setVisible(true);
}
/**
* 构造方法
*/
public ImageZoom() {
initialize(); // 调用初始化方法
}
/**
* 界面初始化方法
*/
private void initialize() {
URL imgUrl
= ImageZoom.
class.
getResource("flower.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("绘制图片"); // 设置窗体标题
}
/**
* 内容面板的布局
* @return
*/
private JPanel getContentPanel
() {
if (contentPanel == null) {
//添加到JPanel面板中
//添加到JPanel面板中
}
return contentPanel;
}
/**
* 获取滑块组件
*通过改变滑块组件的值。来重绘图片的缩放大小
* @return
*/
if (jSlider == null) {
jSlider.setMaximum(1000);
jSlider.setValue(80);
jSlider.setMinimum(10);
//添加事假监听
public void stateChanged
(javax.
swing.
event.
ChangeEvent e
) {
//重绘
canvas.repaint();
}
});
}
return jSlider;
}
/**
*
* @author Administrator
*
*/
public class MyCanvas
extends Canvas {
int newW = 0, 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);// 绘制指定大小的图片
}
}
}