美文网首页
图片的操作

图片的操作

作者: 开心的小哈 | 来源:发表于2022-04-24 11:07 被阅读0次
    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);
                //参数一图片对象,参数二从那个点开始绘制,参数四五为宽和高,参数五为绘制后要通知的对象
    
            }
    
        }
    }
    
    

    相关文章

      网友评论

          本文标题:图片的操作

          本文链接:https://www.haomeiwen.com/subject/foprfrtx.html