📄 imagefilechooser.java
字号:
package com.ciash.common.gui;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.filechooser.FileFilter;
import java.io.File;
import com.ciash.common.gui.event.ImageFileChangeListener;
import java.util.Vector;
import com.ciash.common.gui.event.ImageFileChangeEvent;
/**
* 图片文件选择器
*/
public class ImageFileChooser
extends JPanel {
private JTextField jTextField1 = new JTextField();
private JButton jButton1 = new JButton();
private GridBagLayout gridBagLayout1 = new GridBagLayout();
private JFileChooser chooser = new JFileChooser();
private File file;
Filter filter = new Filter();
private Vector listenerVector = new Vector();
public ImageFileChooser() {
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
jTextField1.setEditable(false);
jTextField1.setSelectionStart(11);
jTextField1.setText("");
jButton1.setVerifyInputWhenFocusTarget(true);
jButton1.setText("浏览");
this.setLayout(gridBagLayout1);
this.add(jTextField1, new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0
, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL
, new Insets(8, 12, 11, 0), 203, 5));
this.add(jButton1, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0
, GridBagConstraints.CENTER, GridBagConstraints.NONE
, new Insets(8, 10, 11, 12), 21, 0));
chooser.setFileFilter(filter);
chooser.setMultiSelectionEnabled(false);
jButton1.addActionListener(new ButtonListener());
}
public File getSelectFile() {
return file;
}
public void setSelectFile(File file) {
if (filter.accept(file)) {
chooser.setSelectedFile(file);
jTextField1.setText(file.getAbsolutePath());
this.file = file;
}
else {
System.err.println("该容器只能装载jpg以及gif文件");
}
}
private class ButtonListener
implements ActionListener {
public void actionPerformed(ActionEvent actionEvent) {
if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
file = chooser.getSelectedFile();
if(file.exists()){
jTextField1.setText(file.getAbsolutePath());
for (int i = 0; i < listenerVector.size(); i++) {
ImageFileChangeListener listener;
listener = (ImageFileChangeListener) listenerVector.get(
i);
ImageFileChangeEvent event = new ImageFileChangeEvent(
file.getAbsolutePath());
listener.imageFilaChange(event);
}
}
else {
JOptionPane.showMessageDialog(chooser, "文件不存在,请重新选择!"
, "错误!", JOptionPane.ERROR_MESSAGE);
}
}
else {
file = null;
}
}
}
private class Filter
extends FileFilter {
public boolean accept(File file) {
String name = file.getName().toLowerCase();
if (name.endsWith(".jpg") || name.endsWith(".gif")
|| file.isDirectory()) {
return true;
}
return false;
}
public String getDescription() {
return "GIF 图形文件 | JPG 图形文件";
}
}
public void addImageFileChangeListener(ImageFileChangeListener listener){
this.listenerVector.add(listener);
}
public void removeImageFileChangeListener(ImageFileChangeListener listener){
this.listenerVector.remove(listener);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -