如何实现把一个目录中的JPG格式的文件读入JList中? 我想通过一个文件选择对话框把一个文件或者一个目录中的所有JPG的文件读入JLIST中,要用到哪些类? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JList;import javax.swing.DefaultListModel;import java.io.File;import javax.swing.filechooser.FileFilter;public class ReadJPG extends JFrame { DefaultListModel listModel = new DefaultListModel(); JList jpgList = new JList(listModel); public ReadJPG(){ JButton bt=new JButton("打开"); this.add(bt); this.add(jpgList); bt.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { JFileChooser file=new JFileChooser(); file.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); file.addChoosableFileFilter(new JPGFileFilter("jpg")); int val = file.showOpenDialog(ReadJPG.this); if(val == JFileChooser.APPROVE_OPTION) { listModel.clear(); File f = file.getSelectedFile(); if(f.isFile()) listModel.addElement(f.getName()); else{//文件夹 File[] files = f.listFiles(); if(files != null && files.length != 1){ for(int i=0; i<files.length; i++){ if(files[i].isFile() && files[i].getName().toLowerCase().endsWith(".jpg")) listModel.addElement(files[i].getName()); } } } } } }); this.setLayout(new FlowLayout()); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setBounds(100,100,300,300); this.setVisible(true); } private class JPGFileFilter extends FileFilter { String ext; JPGFileFilter(String ext) { this.ext = ext; } public boolean accept(File file) { if (file.isDirectory()) { return true; } String fileName = file.getName(); int index = fileName.lastIndexOf('.'); if (index > 0 && index < fileName.length() - 1) { String extension = fileName.substring(index + 1).toLowerCase(); if (extension.equals(ext)) return true; } return false; } public String getDescription() { return "图像文件(*.jpg)"; } } public static void main(String[] args) { new ReadJPG(); }} if条件问题 thinking in java里的域的理解 jar 无法运行,不知道是不是有图片的原因... 一个小程序请看一下结果并解释一下!!! 存储媒体文件 求各位高手帮帮小女子吧,对于类库怎样填加 如何去覆写equals()方法呢? 关于JAVA自带的压缩解压类 请教一个基础的位运算问题!见笑! 我写的Java程序怎给没Java环境的人用? string 的 == 和 equals() GUI
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.DefaultListModel;import java.io.File;
import javax.swing.filechooser.FileFilter;public class ReadJPG extends JFrame {
DefaultListModel listModel = new DefaultListModel();
JList jpgList = new JList(listModel);
public ReadJPG(){
JButton bt=new JButton("打开");
this.add(bt);
this.add(jpgList);
bt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
JFileChooser file=new JFileChooser();
file.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
file.addChoosableFileFilter(new JPGFileFilter("jpg"));
int val = file.showOpenDialog(ReadJPG.this);
if(val == JFileChooser.APPROVE_OPTION)
{
listModel.clear();
File f = file.getSelectedFile();
if(f.isFile())
listModel.addElement(f.getName());
else{//文件夹
File[] files = f.listFiles();
if(files != null && files.length != 1){
for(int i=0; i<files.length; i++){
if(files[i].isFile() && files[i].getName().toLowerCase().endsWith(".jpg"))
listModel.addElement(files[i].getName());
}
}
}
}
}
});
this.setLayout(new FlowLayout());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(100,100,300,300);
this.setVisible(true);
}
private class JPGFileFilter extends FileFilter { String ext;
JPGFileFilter(String ext) {
this.ext = ext;
} public boolean accept(File file) {
if (file.isDirectory())
{
return true;
} String fileName = file.getName();
int index = fileName.lastIndexOf('.'); if (index > 0 && index < fileName.length() - 1)
{
String extension = fileName.substring(index + 1).toLowerCase();
if (extension.equals(ext))
return true;
}
return false;
}
public String getDescription() {
return "图像文件(*.jpg)";
}
}
public static void main(String[] args) {
new ReadJPG();
}
}