package com.main.list;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.io.IOException;
import java.net.URISyntaxException;
public class Demo {
public void init(){
JFrame jf = new JFrame();
MyCanvas myCanvas = new MyCanvas();
JButton fada = new JButton("放大");
fada.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
myCanvas.setWidth(20);
jf.pack();
}
});
JButton suox = new JButton("缩小x");
suox.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
myCanvas.setWidth(-20);
jf.pack();
}
});
JPanel jLabel = new JPanel();
jLabel.add(fada);
jLabel.add(suox);
jf.add(jLabel,BorderLayout.SOUTH);
jf.add(myCanvas);
jf.pack();
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jf.setVisible(true);
}
//图片的缩放
public static void main(String[] args) throws IOException, AWTException, URISyntaxException {
new Demo().init();
}
private class MyCanvas extends Canvas{
int width;
int height;
int sWidth;
int sHeight;
Image image;
public MyCanvas(){
ImageIcon imageIcon = new ImageIcon("img\\1f437.png");
width = imageIcon.getIconWidth();
height = imageIcon.getIconHeight();
image = imageIcon.getImage();
}
public void setWidth(int s){
sWidth+=s;
sHeight+=s;
repaint();
}
@Override
public Dimension getPreferredSize() {
System.out.println(height);
return new Dimension(width+sWidth,height+sHeight);
}
@Override
public void paint(Graphics g) {
g.drawImage(image,0,0,width+sWidth,height+sHeight,this);
//参数一图片对象,参数二从那个点开始绘制,参数四五为宽和高,参数五为绘制后要通知的对象
}
}
}
网友评论