• 大小: 5KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-05-17
  • 语言: Java
  • 标签: Swing  编程  JFileChoose  

资源简介

Swing做的简单图片查看器,JFileChoose的用法。

资源截图

代码片段和文件信息

package yixita;
import java.io.File;
import java.beans.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.filechooser.*;

public class ImageViewer
{
// 定义图片预览组件的大小
final int PREVIEW_SIZE = 100;
Jframe jf = new Jframe(“简单图片查看器“);
JMenuBar menuBar = new JMenuBar();
// 该label用于显示图片
JLabel label = new JLabel();
// 以当前路径创建文件选择器
JFileChooser chooser = new JFileChooser(“.“);
JLabel accessory = new JLabel();
// 定义文件过滤器
ExtensionFileFilter filter = new ExtensionFileFilter();
public void init()
{
// --------下面开始初始化JFileChooser的相关属性--------
//  创建一个FileFilter
filter.addExtension(“jpg“);
filter.addExtension(“jpeg“);
filter.addExtension(“gif“);
filter.addExtension(“png“);
filter.setDescription(“图片文件(*.jpg*.jpeg*.gif*.png)“);
chooser.addChoosableFileFilter(filter);
// 禁止“文件类型”下拉列表中显示“所有文件”选项。
chooser.setAcceptAllFileFilterUsed(false);   // ①
// 为文件选择器指定自定义的FileView对象
chooser.setFileView(new FileIconView(filter));
// 为文件选择器指定一个预览图片的附件
chooser.setAccessory(accessory);     // ②
// 设置预览图片组件的大小和边框
accessory.setPreferredSize(new Dimension(PREVIEW_SIZE PREVIEW_SIZE));
accessory.setBorder(BorderFactory.createEtchedBorder());
// 用于检测被选择文件的改变事件
chooser.addPropertyChangeListener(new PropertyChangeListener()
{
public void propertyChange(PropertyChangeEvent event)
{
// JFileChooser的被选文件已经发生了改变
if (event.getPropertyName() ==
JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)
{
// 获取用户选择的新文件
File f = (File) event.getNewValue();
if (f == null)
{
accessory.setIcon(null);
return;
}
// 将所选文件读入ImageIcon对象中
ImageIcon icon = new ImageIcon(f.getPath());
// 如果图像太大,则缩小它
if(icon.getIconWidth() > PREVIEW_SIZE)
{
icon = new ImageIcon(icon.getImage().getScaledInstance
(PREVIEW_SIZE -1 Image.SCALE_DEFAULT));
}
// 改变accessory Label的图标
accessory.setIcon(icon);
}
}
});
// ------下面代码开始为该窗口安装菜单------
JMenu menu = new JMenu(“文件“);
menuBar.add(menu);
JMenuItem openItem = new JMenuItem(“打开“);
menu.add(openItem);
// 单击openItem菜单项显示“打开文件”的对话框
openItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
// 设置文件对话框的当前路径
// chooser.setCurrentDirectory

评论

共有 条评论