有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java消息对话框反复出现

我们制作了一种方法来确定我们的图像在帧中的位置。如果图像位于框架的某个部分,它将显示一个消息对话框,我们将返回主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) 个答案

  1. # 1 楼答案

    您需要有一个布尔变量,它将告诉您消息是否已经显示。差不多

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

    messageHasBeenShown = true;之前的某个地方