支持图片预览的文件选择对话框
来源:互联网 发布:淘宝上评价怎么删除 编辑:程序博客网 时间:2024/05/16 19:00
本实例在文件选择器JFileChooser类的基础上开发了支持图片预览效果的文件选择对话框。在选择图片文件,特别是选择数码相机中的随机命名的图片时极为方便。实例的效果如下:
完整代码如下:
package cn.whut.num;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.EventQueue;import java.awt.Image;import java.io.File;import javax.swing.ImageIcon;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;import javax.swing.border.LineBorder;import javax.swing.filechooser.FileNameExtensionFilter;import java.beans.PropertyChangeListener;import java.beans.PropertyChangeEvent;import javax.swing.JButton;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;public class PreviewFileDialog extends JFrame { private static final long serialVersionUID = 1L;private JPanel contentPane; private JFileChooser fileChooser; private ImagePreviewer imageLabel; private ImagePreviewer previewer; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { PreviewFileDialog frame = new PreviewFileDialog(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public PreviewFileDialog() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 629, 428); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); JPanel panel = new JPanel(); contentPane.add(panel, BorderLayout.NORTH); JButton chooseButton = new JButton( "\u9009\u62E9\u56FE\u7247\u6587\u4EF6"); chooseButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { do_button_actionPerformed(e); } }); panel.add(chooseButton); imageLabel = new ImagePreviewer((JFileChooser) null); contentPane.add(imageLabel, BorderLayout.CENTER); initFileChooser(); } /** * 初始化文件选择器 */ private void initFileChooser() { fileChooser = new JFileChooser();// 创建文件选择器 previewer = new ImagePreviewer(fileChooser);// 创建图片预览标签 fileChooser.setFileFilter(new FileNameExtensionFilter("图片文件", "jpg", "gif", "png")); // 为指定属性变更添加事件监听器 fileChooser.addPropertyChangeListener("SelectedFileChangedProperty", new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { // 属性改变时设置预览标签的图片 previewer.setImageFile((File) evt.getNewValue()); } }); fileChooser.setAccessory(previewer); } /** * 选择图片文件按钮的事件处理方法 * * @param e */ protected void do_button_actionPerformed(ActionEvent e) { int option = fileChooser.showOpenDialog(this);// 显示打开文件对话框 if (option == JFileChooser.APPROVE_OPTION) { // 获取选择的文件对象 File file = fileChooser.getSelectedFile(); // 更新窗体中图片 imageLabel.setImageFile(file); } }}/** * 自定义图片预览标签 * */class ImagePreviewer extends JLabel { public ImagePreviewer(JFileChooser chooser) { // 初始大小 setPreferredSize(new Dimension(200, 200)); setHorizontalAlignment(JLabel.CENTER);// 水平居中 setBorder(new LineBorder(Color.GRAY));// 设置边框 setOpaque(true);// 标签不透明 setBackground(Color.WHITE);// 设置背景色 setText("没有设置图片");// 默认文本 } /** * 设置标签图片的方法 * * @param file */ public void setImageFile(File file) { setText("");// 清空图片预览标签的文本 if (file == null) {// 如果文件对象为空 setText("没有设置图片");// 设置默认提示文本 return;// 终止方法 } // 创建图标对象 ImageIcon icon = new ImageIcon(file.getPath()); if (icon.getIconWidth() > getWidth()) {// 设置图标大小 icon = new ImageIcon(icon.getImage().getScaledInstance(getWidth(), -1, Image.SCALE_DEFAULT)); } setIcon(icon);// 为标签设置图标 repaint();// 重新绘制界面 }}
0 0
- 支持图片预览的文件选择对话框
- 支持预览的文件选择对话框
- 文件预览对话框的实现
- 选择文件的对话框
- 支持预览功能的图片上传控件
- 支持多浏览器的图片预览
- 支持gif的图片预览控件
- 对于支持上传文件的手机浏览器出现的图片不能预览问题的解决办法
- 支持选择文件和目录(可多选)的文件对话框CSelectDialog
- 基于ajax的Html5文件上传插件,带进度并支持图片预览
- 选择文件夹和选择文件的对话框
- input选择图片 预览图片
- 使用uploadify3上传图片的示例支持图片预览
- JFileChooser ,让你的图片选择可以预览图片内容
- 文件选择对话框、路径选择对话框的函数实现
- 图片选择器, 支持多图选择和图片预览等功能
- 弹出文件选择对话框(支持多选)
- C#--WinForm图片选择对话框的使用
- @Override标签背后的小秘密---记录java的思行合一(作者:leeon)
- 百度电话面试
- ACdream原创群赛(13)のwuyiqi退役专场 C True love
- TFS2013 下载激活
- QT使用QSettings类配置文件保存配置源码
- 支持图片预览的文件选择对话框
- oj(二)a
- C#: +(特性 ) + Attitude C#(类)前面或者(方法)前面 (中括号)定义
- Android输入法扩展之外接键盘中文输入
- 博客搬家出现的问题
- Linux下挂载U盘操作
- Gradle批量打包
- JDBC操作数据库
- leetcode:Same Tree