[英]ImageIcon in java
我正在研究匹配照片的游戲,我想我可以通過知道conteiner lable的名稱來重置imageIcon,然后在isMatch方法中ismatch return false時重置標簽圖標。
在每個標簽中寫入以下代碼,僅在第二個標簽中才能進行重置。我該怎么辦?
public ImageIcon firstChoice;
public ImageIcon SecoundChoice;
public boolean isSelected = false;
public boolean isMatch = true;
public boolean ismatch(ImageIcon firstChoice, ImageIcon secoundChoce) {
if (firstChoice.getImage() == secoundChoce.getImage()) {
JOptionPane.showMessageDialog(null, " wowo you got it ^^");
isMatch = true;
} else {
JOptionPane.showMessageDialog(null, " notmatced");
isMatch = false;
}
return isMatch;
}
// label Mouse Clicked
private void label1MouseClicked(java.awt.event.MouseEvent evt) {
label1.setIcon(new ImageIcon("G:/Games/icons/File Server Asia.png"));
if (isSelected == true) {
ImageIcon icon1 = (ImageIcon) label1.getIcon();
firstChoice = icon1;
if (SecoundChoice != null && firstChoice != null) {
}
boolean match = ismatch(firstChoice, SecoundChoice);
if (isMatch == false) {
label1.setIcon(null);
firstChoice = SecoundChoice = null;
}
} else {
if (SecoundChoice == null) {
ImageIcon icon1 = (ImageIcon) label1.getIcon();
SecoundChoice = icon1;
isSelected = true;
}
if (isMatch == false) {
label1.setIcon(null);
}
}
}
我建議您不要將ImageIcons傳遞到ismatch(...)
方法中,而是傳遞兩個保存ImageIcons的JLabel。 然后,在該方法內部,您可以像以前一樣提取ImageIcons並將它們進行比較,但更重要的是,您擁有保存圖標的JLabel的引用,然后可以將它們設置為背景或空Icon。
// "second" is mispelled
public boolean ismatch(JLabel firstChoiceLabel, JLabel secoundChoceLabel) {
ImageIcon firstChoice = firstChoiceLabel.getIcon();
ImageIcon secoundChoice = secoundChoiceLabel.getIcon();
if (firstChoice.getImage() == secoundChoce.getImage()) {
JOptionPane.showMessageDialog(null, " wowo you got it ^^");
isMatch = true;
} else {
JOptionPane.showMessageDialog(null, " notmatced");
isMatch = false;
// here set Icon to null or to background icon.
firstChoiceLabel.setIcon(null);
secoundChoiceLabel.setIcon(null);
}
return isMatch;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.