您的位置 首页 java

java学习-移动滑块改变图片的大小,实现图片的动态缩放

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 {

Image img;

private JPanel contentPanel = null;

private JSlider jSlider = null;

private int imgWidth, imgHeight;

private Canvas canvas = null;

// 主方法

想要了解更多java知识那就来关注我们吧! 精彩内容多多哦!不容错过哦!

多多关注!

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) {

contentPanel = new JPanel();

contentPanel.setLayout(new BorderLayout());

//添加到JPanel面板中

contentPanel.add(getJSlider(), BorderLayout.SOUTH);

//添加到JPanel面板中

contentPanel.add(canvas, BorderLayout.CENTER);

}

return contentPanel;

}

/**

* 获取滑块组件

*通过改变滑块组件的值。来重绘图片的缩放大小

* @return

*/

private JSlider getJSlider() {

if (jSlider == null) {

jSlider = new JSlider();

jSlider.setMaximum(1000);

jSlider.setValue(80);

jSlider.setMinimum(10);

//添加事假监听

jSlider.addChangeListener(new javax.swing.event.ChangeListener() {

public void stateChanged(javax.swing.event.ChangeEvent e) {

//重绘

canvas.repaint();

}

});

}

System.out.println(jSlider);

return jSlider;

}

/**

*

* @author Administrator

*

*/

public class MyCanvas extends Canvas {

public void paint(Graphics g) {

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);// 绘制指定大小的图片

}

}

}

文章来源:智云一二三科技

文章标题:java学习-移动滑块改变图片的大小,实现图片的动态缩放

文章地址:https://www.zhihuclub.com/198534.shtml

关于作者: 智云科技

热门文章

网站地图