下面是代码,注释里都写了 ^_^
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); //绘制指定大小的图片 } } }
JSlider实现缩放照片的大小
最新推荐文章于 2024-03-15 09:33:44 发布