Java awt组件图片缩放练习

import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Demo extends JFrame{
private int num=0;//定义图片的全局增量
public Demo(){
/*
* 窗口布局
/
setBounds(200, 200, 500, 400);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setTitle(“图像缩放”);
/

* 添加画布
/
Container c=getContentPane();
MyCanvas canvas1=new MyCanvas();
c.add(canvas1,BorderLayout.CENTER);
/

* 添加面板
/
JPanel panel=new JPanel();
c.add(panel,BorderLayout.SOUTH);
JButton btn1=new JButton(“放大”);
btn1.addActionListener(new ActionListener() {//监听事件放大
@Override
public void actionPerformed(ActionEvent e) {
num+=10;
canvas1.repaint();
}
});
JButton btn2=new JButton(“缩小”);
btn2.addActionListener(new ActionListener() {//监听事件缩小
@Override
public void actionPerformed(ActionEvent e) {
num-=10;
canvas1.repaint();
}
});
panel.add(btn1);
panel.add(btn2);
setVisible(true);
}
public static void main(String[] args) {
new Demo();
}
/

* 使用drawImage方法实现图片的放大缩小
*/
class MyCanvas extends Canvas{
@Override
public void paint(Graphics g) {
Graphics2D g2=(Graphics2D)g;
Image image =new ImageIcon(“2.jpg”).getImage();
g2.drawImage(image, 0, 0, 300+num, 250+num, this);
}
}
}

你可能感兴趣的:(Java awt组件图片缩放练习)