[基本上,我使用2张图像作为棋盘游戏类型的东西,但我会不时更改它,所以我需要能够检查两个是否具有相同的imageIcon。例如,如果两者都使用资源文件夹中的“ pirosfigura.png”。
public String malomcheck() {
String pirosicon=lblNewLabel.getIcon().toString();
String pirosfilenev = pirosicon.substring(pirosicon.lastIndexOf("/" ) + 1);
String iconfilenev = labelhely_1.getIcon().toString();
String filenev = iconfilenev.substring(iconfilenev.lastIndexOf("/" ) + 1);
if(filenev==pirosfilenev) {
lblJtkos.setText("piros malom.");
JOptionPane.showMessageDialog(null, "working");
return "lefutott";
}
return "notworking. very sad.";
}
顺便说一句,getIcon()。toString()的返回值是javax.swing.ImageIcon@cd7e8021这是指我猜的内存位置(?),因此每次运行和每张图像都是随机的,因此似乎无法使用。
实现此目标的一种方法是保留自己ImageIcon
到文件的映射,以便每当加载ImageIcon
时,都将其存储为Map
作为密钥及其文件或某些符号名/ enum作为值。这样,当您想比较imIc1
和imIc2
时,您将编写如下内容:
if (map.get(imIc1).equals(map.get(imIc2)) { ... }
或(如果您有描述性的字符串值)
if (map.get(imIc1).equals("NOT_WORKING_ICON") { ... }
或(如果使用枚举值)
if (map.get(imIc1) == NOT_WORKING_ICON ) { ... }