Java 如何仅获取jlabel的图像图标名称而不是路径

Java 如何仅获取jlabel的图像图标名称而不是路径,java,jlabel,imageicon,Java,Jlabel,Imageicon,我想知道如何只获得JLabel映像名,而不是我尝试使用的整个路径 jLabel.getIcon(); 但它使用的是整个路径,而不仅仅是名称(即名称,berries.png)。当我使用getIcon()时,结果是: 文件:/C:/Users/lolne/Desktop/FCaWfD%20-%20Desktop%20已更新%20Version/build/classes/resources/quick/berries.png 我只希望找到berries.png的结尾部分。我将此代码用于学校作业的食

我想知道如何只获得JLabel映像名,而不是我尝试使用的整个路径

jLabel.getIcon();
但它使用的是整个路径,而不仅仅是名称(即名称,berries.png)。当我使用getIcon()时,结果是:

文件:/C:/Users/lolne/Desktop/FCaWfD%20-%20Desktop%20已更新%20Version/build/classes/resources/quick/berries.png

我只希望找到berries.png的结尾部分。我将此代码用于学校作业的食品网络游戏,这是使用此代码的代码:

public void checkResults(){

    JLabel[] consumers = {
        consumer1,
        consumer2,
        consumer3,
        consumer4,
        consumer5,
    };

    switch(RandomNumber.randomNumber){
        case 1:
            if(producer.getIcon().equals(producers[0])){
                correct++;
            }else{
                producer.setBorder(BorderFactory.createLineBorder(Color.RED));
            }

            for(int i = 0; i < 5; i++){
                if(consumers[i].getIcon().equals(consumers1.get(i))){
                    correct++;
                }else{
                    consumers[i].setBorder(BorderFactory.createLineBorder(Color.RED));
                }
            }
        break;

        case 2:
            if(producer.getIcon().equals(producers[1])){
                correct++;
            }else{
                producer.setBorder(BorderFactory.createLineBorder(Color.RED));
            }

            for(int i = 0; i < 5; i++){
                if(consumers[i].getIcon().equals(consumers2.get(i))){
                    correct++;
                }else{
                    consumers[i].setBorder(BorderFactory.createLineBorder(Color.RED));
                }
            }
        break;

        case 3:
            if(producer.getIcon().equals(producers[2])){
                correct++;
            }else{
                producer.setBorder(BorderFactory.createLineBorder(Color.RED));
            }

            for(int i = 0; i < 5; i++){
                if(consumers[i].getIcon().equals(consumers3.get(i))){
                    correct++;
                }else{
                    consumers[i].setBorder(BorderFactory.createLineBorder(Color.RED));
                }
            }
        break;
    }
}
public void checkResults(){
JLabel[]消费者={
消费者1,
消费者2,
消费者3,
消费者4,
消费者5,
};
开关(RandomNumber.RandomNumber){
案例1:
if(producer.getIcon().equals(producers[0])){
正确的++;
}否则{
producer.setboorder(BorderFactory.createLineBorder(Color.RED));
}
对于(int i=0;i<5;i++){
if(consumers[i].getIcon().equals(consumers1.get(i))){
正确的++;
}否则{
consumers[i].setboorder(BorderFactory.createLineBorder(Color.RED));
}
}
打破
案例2:
if(producer.getIcon().equals(producers[1])){
正确的++;
}否则{
producer.setboorder(BorderFactory.createLineBorder(Color.RED));
}
对于(int i=0;i<5;i++){
if(consumers[i].getIcon().equals(consumers2.get(i))){
正确的++;
}否则{
consumers[i].setboorder(BorderFactory.createLineBorder(Color.RED));
}
}
打破
案例3:
if(producer.getIcon().equals(producers[2])){
正确的++;
}否则{
producer.setboorder(BorderFactory.createLineBorder(Color.RED));
}
对于(int i=0;i<5;i++){
if(consumers[i].getIcon().equals(consumers3.get(i))){
正确的++;
}否则{
consumers[i].setboorder(BorderFactory.createLineBorder(Color.RED));
}
}
打破
}
}
总之,我的问题是,“如何获取图像本身的名称而不是图像的整个路径”

您可以使用file getName()方法来获取文件名

File file = new File("C:/Users/lolne/Desktop/FCaWfD%20-%20Desktop%20Updated%20Version/build/classes/resources/quiz/berries.png");
        System.out.println(file.getName());
将输出

berries.png