Image 图像名称未显示在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

下面给出了我的代码。我想将所有图像名称从文件夹显示到jList中。但以下代码将名称显示在输出屏幕而不是jList中。请帮助解决此问题

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