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

📄 imagepreviewer.java

📁 图象编辑器
💻 JAVA
字号:
  package imageapp;

import java.io.File;
import java.awt.*;
import javax.swing.*;
import javax.swing.filechooser.*;
import java.beans.*;
import javax.imageio.*;

class ImagePreviewer extends JComponent implements PropertyChangeListener {
	ImageIcon thumbnail = null;

	public ImagePreviewer(JFileChooser fc) {
	    setPreferredSize(new Dimension(100, 50));
	    fc.addPropertyChangeListener(this);
	}

	public void loadImage(File f) {
        if (f == null) {
            thumbnail = null;
        } 
        else {
			ImageIcon tmpIcon = null;
			try{ tmpIcon = new ImageIcon(ImageIO.read(f)); }
			catch(Exception e){};
			if(tmpIcon == null) return ;
			if(tmpIcon.getIconWidth() > 120) {
			    thumbnail = new ImageIcon(
					tmpIcon.getImage().getScaledInstance(120, -1, Image.SCALE_DEFAULT));
			} 
			else {
			    thumbnail = tmpIcon;
			}
	    }
	}

	public void propertyChange(PropertyChangeEvent e) {
	    String prop = e.getPropertyName();
	    if(prop == JFileChooser.SELECTED_FILE_CHANGED_PROPERTY) {
			if(isShowing()) {
	            loadImage((File) e.getNewValue());
			    repaint();
			}
	    }
	}

	public void paint(Graphics g) {
	    if(thumbnail != null) {
		int x = getWidth()/2 - thumbnail.getIconWidth()/2;
		int y = getHeight()/2 - thumbnail.getIconHeight()/2;
		if(y < 0) {
		    y = 0;
		}

		if(x < 5) {
		    x = 5;
		}
		thumbnail.paintIcon(this, g, x, y);
	    }
	}
}

⌨️ 快捷键说明

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