⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 picturebox.java

📁 此文档针对开发人员和测试人员。第二章对软件进行了全面的描述。第三章对接口进行了分析。第四章对软件实现的功能进行概述。第五章对软件后续开发实现提出的要求。第六章提出其他一些在软件开发过程中需要注意的问题
💻 JAVA
字号:
package com.ciash.common.gui;


import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.Dimension;
import java.io.File;
import java.awt.Toolkit;
import javax.swing.ImageIcon;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JViewport;
import java.awt.Rectangle;
import java.awt.Point;


/**
 * 图片控件
 */

public class PictureBox
extends JScrollPane {

    private Canvas canvas = new Canvas();

    public PictureBox() {
        setViewportView(canvas);
        setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    }

    public PictureBox(Image image) {
        setImage(image);
    }

    public void setImage(Image image) {
        canvas.setImage(image);
        setViewportView(canvas);
        //调用setViewportView重置JViewport
        //后期新建对象进行优化
        paintImmediately(getBounds());
        //立即更新容器
    }

    public void setImage(String path) {
        Toolkit tool = Toolkit.getDefaultToolkit();
        Image img = new ImageIcon(path).getImage();
        setImage(img);
    }

    public Image getImage() {
        return canvas.getImage();
    }

    public class Canvas
        extends JPanel {

        private Image image;

        public Image getImage() {
            return image;
        }

        public void setImage(Image image) {
            this.image = image;
        }

        public void paint(Graphics g) {
            Dimension size = getSize();
            resizePreferenceSize(image, size);
            g.setColor(getBackground());
            g.fillRect(0, 0, getSize().width, getSize().height);
            drawImage(g, size);
        }

        private void drawImage(Graphics g,Dimension size) {
            if (image != null) {
                g.drawImage(image, 0, 0, size.width, size.height, null);
            }
        }

        private void resizePreferenceSize(Image image, Dimension size) {
            if (image != null) {
                size.width = image.getWidth(null);
                size.height = image.getHeight(null);
                setPreferredSize(size);
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -