java建立一个简单的图片浏览器
2016-09-23 20:07
302 查看
源代码:
package filterDialog1;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.event.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.*;
import javax.swing.*;
import javax.swing.filechooser.*;
import javax.swing.filechooser.FileFilter;
public class ImageFrame{
public static void main(String args[]){
Image1Frame ia1=new Image1Frame();
ia1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ia1.setVisible(true);
}
}
class Image1Frame extends JFrame{
public static final int DEFAULT_WIDTH=400;
public static final int DEFAULT_HEIGHT=300;
private JFileChooser chooser;
private JLabel label;
public Image1Frame(){
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
JMenuBar menuBar=new JMenuBar();
setJMenuBar(menuBar);
JMenu menu=new JMenu("File");
menuBar.add(menu);
JMenuItem openItem=new JMenuItem("Open");
openItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
chooser.setCurrentDirectory(new File("."));
//show file chooser dialog
int result=chooser.showOpenDialog(Image1Frame.this);
}
});
menu.add(openItem);
JMenuItem exitItem=new JMenuItem("Exit");
exitItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
System.exit(0);
}
});
menu.add(exitItem);
//User a label to diaplay the images
label=new JLabel();
add(label);
//set up file chooser
chooser=new JFileChooser();
//accept all image files ending with .jpg .jpeg .gif
FileNameExtensionFilter filter=new
FileNameExtensionFilter("images files","jpeg","gif","jpg");
chooser.setFileFilter(filter);
chooser.setAccessory(new ImagePreviewer(chooser));
// 设置 FileChooserUI 中的 ApproveButton 内使用的文本
chooser.setApproveButtonText("Open");
//窗口标题
chooser.setDialogTitle("DialogTitle");
chooser.setFileView(new FileIconView(filter,new
ImageIcon("palette.gif")));
}
}
class ImagePreviewer extends JLabel{
public ImagePreviewer(JFileChooser chooser){
setPreferredSize(new Dimension(200,200));
setBorder(BorderFactory.createEtchedBorder());
chooser.addPropertyChangeListener(new PropertyChangeListener()
{
@Override
public void propertyChange(PropertyChangeEvent evt) {
if(evt.getPropertyName()==JFileChooser.SELECTED_FILE_CHANGED_PROPERTY){
//the user has selected a new file
File f=(File)evt.getNewValue();
if(f==null){
setIcon(null);
return;
}
//read the image into an icon
ImageIcon icon=new ImageIcon(f.getPath());
//if the icon is too large to fit,scale
it
if(icon.getIconWidth()>getWidth()) icon=new
ImageIcon(icon.getImage().getScaledInstance(getWidth(), -1,
Image.SCALE_DEFAULT));
setIcon(icon);
}
}
});
}
}
class FileIconView extends FileView
{
private FileFilter
filter;
private Icon icon;
public
FileIconView(FileFilter aFilter, Icon anIcon)
{
filter = aFilter;
icon
= anIcon;
}
public Icon getIcon(File
f)
{
if
(!f.isDirectory() && filter.accept(f)) return icon;
else
return null;
}
}
相关文章推荐
- 一个简单的图片浏览器(java版)
- 一个简单的图片截取代码 java
- core java 8 学习笔记(一) 一个简单的图片查看器的实现
- 用Gradle建立一个简单的java项目
- 【java学习记录】13.实现简单的浏览器功能:获取源代码、保存源代码、获取图片
- Java写的一个简单的图片移动小程序
- iOS开发中实现一个简单的图片浏览器的实例讲解
- 【Java编程】建立一个简单的JDBC连接-Drivers, Connection, Statement and PreparedStatement
- Cage 是一个 Java 实现的验证码图片生成库,快速、小型和简单。
- 使用XML布局文件和java代码共同控制UI界面做一个简易图片浏览器
- 使用XML布局文件和Java混合控制UI界面---简单图片浏览器
- java swing实现简单的图片浏览器
- 一个简单的图片浏览器
- 一个简单的java读取网页图片并保存图片的程序
- 一个简单的java浏览器
- 【Java编程】建立一个简单的JDBC连接-Drivers, Connection, Statement and PreparedStatement
- Eclipse 建立一个简单地JAVA程序
- 搜索引擎(建立一个简单的java Lucene实例)
- java中一个简单的Applet(图片浏览…
- java学习日记_11:面向对象之简单的建立一个类。