JSlider实现缩放照片的大小

本文介绍了一个使用Java实现的简单图片缩放程序。该程序通过Swing框架创建了一个窗口,用户可以通过拖动滑块来实时调整显示图片的大小。程序利用了AWT包中的Canvas类来绘制和更新图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面是代码,注释里都写了   ^_^
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);    //绘制指定大小的图片
		}
	}
}





                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值