如何只获取 jlabel 的图像图标名称而不是路径
How do you get just the image icon name of a jlabel rather than the path
我想知道如何只获取 JLabel 图像名称而不是整个路径,我尝试使用
jLabel.getIcon();
但它使用整个路径而不仅仅是名称(即名称,berries.png)。当我使用 getIcon() 时,结果是:
file:/C:/Users/lolne/Desktop/FCaWfD%20-%20Desktop%20Updated%20Version/build/classes/resources/quiz/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;
}
}
总而言之,我的问题是,"How do I get the name of the image itself rather than the whole path of the image"
您可以使用 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
我想知道如何只获取 JLabel 图像名称而不是整个路径,我尝试使用
jLabel.getIcon();
但它使用整个路径而不仅仅是名称(即名称,berries.png)。当我使用 getIcon() 时,结果是:
file:/C:/Users/lolne/Desktop/FCaWfD%20-%20Desktop%20Updated%20Version/build/classes/resources/quiz/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;
}
}
总而言之,我的问题是,"How do I get the name of the image itself rather than the whole path of the image"
您可以使用 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