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

📄 imageview.java

📁 这是一个用java编写类似于notepad文件编辑器
💻 JAVA
字号:
/*
 * Created on 2004-3-13
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */

/**
 * @author Administrator
 *
 * To change the template for this generated type comment go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import java.util.ArrayList;

import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileView;
 
 
public class ImageView {
	public static void main(String args[]) {
		ImageViewerFrame frame=new ImageViewerFrame();

		
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.show();
	}
}

class ImageViewerFrame extends JFrame {
	
	JLabel label;
	JFileChooser chooser;
	int dWIDTH=300;
	int dHEIGHT=400;
	AboutDialog dialog;
	public ImageViewerFrame() {
		setTitle("ImageViewer");
		setSize(dWIDTH,dHEIGHT);
		
		JMenuBar  menuBar=new JMenuBar();
		setJMenuBar(menuBar);
		JMenu menu=new JMenu("File");
		menuBar.add(menu);
		
		JPanel myPanel=new JPanel();
		Container contentPane=getContentPane();
		contentPane.add(myPanel);
		myPanel.setBackground(Color.yellow);
	
	
	
	//用一个LABEL来显示图片
	 label = new JLabel();
 
	myPanel.add(label);
	
	
	chooser=new JFileChooser();
	chooser.setCurrentDirectory(new File("."));
	 
	 
	 //accept all image files ending with .jpg .jpeg .gif
	final ExtensionFileFilter filter=new ExtensionFileFilter();
	
	filter.addExtension("jpg");
	filter.addExtension("jpeg");
	filter.addExtension("gif");
	filter.setDescription("Image files");
	chooser.setFileFilter(filter);
	
	chooser.setAccessory(new ImagePreviewer(chooser));
	
	JMenuItem openItem=new JMenuItem("Open");
			menu.add(openItem);
			openItem.addActionListener(new 
			ActionListener() {
					public void actionPerformed(ActionEvent e){
						int r=chooser.showOpenDialog(null);
						
						//if file selected,set it as icon of the label
						if(r==JFileChooser.APPROVE_OPTION)
						{
							String name=chooser.getSelectedFile().getPath();
							ImageIcon im=new ImageIcon(name);
							im.getImage().getScaledInstance(im.getIconWidth()*2,im.getIconHeight()*2,Image.SCALE_DEFAULT);
							label.setIcon(im);
							
						}
				}
				}
		);	
	

		JMenuItem exitItem=new JMenuItem("Exit");
		menu.add(exitItem);
		exitItem.addActionListener(new 
			ActionListener() {
				public void actionPerformed(ActionEvent e){
					System.exit(0);
			}
			}
	);	
	JMenuItem aboutItem=new JMenuItem("About");
	menu.add(aboutItem);
	aboutItem.addActionListener(new 
		ActionListener() {
			public void actionPerformed(ActionEvent e){
				if(dialog==null) //first run
					dialog=new AboutDialog(ImageViewerFrame.this);
				dialog.show();
		}
		}
);	
	}
	

}

class ExtensionFileFilter extends FileFilter {
 	public void addExtension(String extension) {
 		if(!extension.startsWith("."))
 			extension="."+extension;
 		extensions.add(extension.toLowerCase());
 	}
 	
 	public  void setDescription(String aDes) {
		description=aDes;
 	}
 	public String getDescription(){
		return description;
 	}
 	
 	public boolean accept(File f) {
 		if(f.isDirectory()) return true;
 		String name =f.getName().toLowerCase();
 		
 		for(int i=0;i<extensions.size();i++) 
 			if(name.endsWith((String)extensions.get(i)))
 				return true;
 		return false;
 	}
 	private String description="";
 	private ArrayList	extensions=new ArrayList();
 }
 
class FileIconView extends FileView {
	
	private FileFilter filter;
	private Icon icon;
	public Icon getIcon(File f) {
	 	if(!f.isDirectory()&&filter.accept(f))
	 		return icon;
	 	else return null;
	}
}

class ImagePreviewer extends JLabel {
	public ImagePreviewer(JFileChooser chooser) {
		setPreferredSize(new Dimension(100,100));
		setBorder(BorderFactory.createEtchedBorder());
		
		chooser.addPropertyChangeListener(new PropertyChangeListener() {
			public void propertyChange(PropertyChangeEvent event){
				if(event.getPropertyName() == JFileChooser.SELECTED_FILE_CHANGED_PROPERTY) {
					File f=(File)event.getNewValue();
					ImageIcon icon=new ImageIcon(f.getPath());
					
					if(icon.getIconWidth() >getWidth())
						icon= new ImageIcon(icon.getImage().getScaledInstance(getWidth(),-1,Image.SCALE_DEFAULT));
						setIcon(icon);
				}
			}
		});
	}
}

 
class AboutDialog extends JDialog {
	
	public AboutDialog(JFrame owner) {
		super(owner,"About Dialog",true);
		Container contentPane=getContentPane();
		
		//add HTML label to center
		contentPane.add(new JLabel("<HTML><H1><I>FileOperator</I></H1><HR>"
		+" Made By Song !<HTML>"),BorderLayout.CENTER );
		
	 JButton ok=new JButton("OK");
	 ok.addActionListener(new
	 ActionListener() 
	 {
	 	public void actionPerformed(ActionEvent e) 
	 {
	 		setVisible(false);
	 }		
	 });
		JPanel panel=new JPanel();
		panel.add(ok);
		contentPane.add(panel,BorderLayout.SOUTH);
		setSize(250,150);
	}
} 


⌨️ 快捷键说明

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