美文网首页
图片的操作

图片的操作

作者: 开心的小哈 | 来源:发表于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