Image 图像名称未显示在jList中
下面给出了我的代码。我想将所有图像名称从文件夹显示到jList中。但以下代码将名称显示在输出屏幕而不是jList中。请帮助解决此问题Image 图像名称未显示在jList中,image,swing,netbeans-7,jlist,Image,Swing,Netbeans 7,Jlist,下面给出了我的代码。我想将所有图像名称从文件夹显示到jList中。但以下代码将名称显示在输出屏幕而不是jList中。请帮助解决此问题 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { String path = "C:\\Users\\Dell\\Documents\\NetBeansProjects\\pasword2\\src\\images\\"; File folder = new
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String path = "C:\\Users\\Dell\\Documents\\NetBeansProjects\\pasword2\\src\\images\\";
File folder = new File(path);
File[] listOfFiles = folder.listFiles();
DefaultListModel listModel = new DefaultListModel();
int count = 0;
for (int i = 0; i < listOfFiles.length; i++)
{
System.out.println("check path"+listOfFiles[i]);
String name = listOfFiles[i].toString();
// load only JPEGs
if ( name.endsWith("jpg")||name.endsWith("bmp") ) {
try
{
ImageIcon ii = new ImageIcon(ImageIO.read(listOfFiles[i]));
listModel.add(count++, ii);
}
catch(IOException e){}
}
}
jList1.setModel(listModel);
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
String path=“C:\\Users\\Dell\\Documents\\NetBeansProjects\\pasword2\\src\\images\\”;
文件夹=新文件(路径);
File[]listOfFiles=folder.listFiles();
DefaultListModel listModel=新的DefaultListModel();
整数计数=0;
for(int i=0;i
您只希望文件名出现在列表中,但您正在添加图像。所以不是
try{
ImageIcon ii = new ImageIcon(ImageIO.read(listOfFiles[i]));
listModel.add(count++, ii);
}
catch(IOException e){}
照办
listModel.add(count++, listOfFiles[i].getName());
如果要将ImageIcon和文件名存储到一个对象中,可以创建包装器类。差不多
public class NamedImageIcon {
private String imageName;
private ImageIcon icon;
public NamedImageIcon(ImagIcon icon, String imageName) {
this.icon = icon;
this.imageName = imageName;
}
// getters and setters
@Override
public String toString() {
return imageName;
}
}
不,在循环时,可以为名称和图像创建包装。然后,您可以将
NamedImageIcon
的实例添加到DefaultListModel
中。由于您重写了toString(),列表中只会显示名称。因此,当您从列表中选择名称时,您将可以直接访问相应的图像不要接受您的异常。放一些有意义的东西,比如ex.printStackTrace()
,这样你就知道什么时候/什么样的异常会被抛出,如果一个isI尝试了,但它没有显示任何错误@peeskillet:I检查了列表。Listofiles[]包含了所有的名称。那么问题是什么?放一个SOP(名称)看看它打印出了什么。让我know@peeskillet:C:\Users\Dell\Documents\NetBeansProjects\pasword2\src\images\u MG\u 4082.JPG