2013-05-10 5 views
0

Мы создали метод, который определит, где находится наш образ в нашем фрейме. Если изображение находится в определенной части кадра, оно отобразит диалоговое окно с сообщением, и мы вернемся к нашему основному JPanel (мы делаем игру для мини-гольфа;))Диалог сообщений снова и снова

Проблема в том, что когда появляется диалоговое окно сообщения, он продолжает появляться после того, как он переключился на нашу главную панель. Вот код:

package Project; 
import java.awt.Graphics; 
import java.awt.Image; 
import java.io.File; 
import javax.swing.ImageIcon; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 

public class Blackhole 
{ 
Image blackhole; 
int xblack; 
int yblack; 
public final int breedte=75; 
public final int hoogte=75; 
public String afbeelding2; 
public Atoom atoom; 
public Frame venster; 
public SpelPaneel x; 

public Blackhole(int xblack, int yblack, String afbeelding2) 
{ 
    this.xblack = xblack; 
    this.yblack = yblack; 
    blackhole = new ImageIcon(getClass().getResource(afbeelding2)).getImage(); 
} 

public void tekenblackhole(Graphics g) 
{ 
    g.drawImage(blackhole,xblack,yblack,75,75,null); 
} 

public boolean gameover(Atoom atoom) 
{ 
    return ((atoom.xpositie +atoom.BREEDTE > this.xblack) && (atoom.xpositie < this.xblack + this.breedte) && (atoom.ypositie + atoom.HOOGTE>this.yblack && atoom.ypositie<this.yblack+this.hoogte)) ; 

} 

И это метод, который мы призываем в нашем классе, где происходит игра.

if (blackhole.gameover(atoom)) 
    { 

     JOptionPane.showMessageDialog(null, "You're Goneee in The Black Hole !!"); 
     venster.switchPanel(); 
    } 
+1

Сделайте экземпляр boolean default равным false, проверьте, является ли оно ложным перед показом вашей ошибки, покажите свою ошибку и установите для нее значение true. – Logan

ответ

0

У вас должна быть логическая переменная, которая сообщит вам, было ли сообщение уже показано. Что-то вроде

if (blackhole.gameover(atoom) && !messageHasBeenShown) 
{ 
     messageHasBeenShown = true; 
     JOptionPane.showMessageDialog(null, "You're Goneee in The Black Hole !!"); 
     venster.switchPanel(); 
} 

и messageHasBeenShown = true; где-то раньше.

Смежные вопросы