java - 当进度条达到 0 时打开新的 JFrame?

标签 java eclipse swing if-statement jprogressbar

我正在尝试制作一个 java 游戏,当玩家的生命值达到 0 时,游戏应该结束,但目前当我的进度条达到 0 时这里没有任何反应是我的代码有问题吗?

JProgressBar healthProgressBar = new JProgressBar();
    lblHealth.setLabelFor(healthProgressBar);
    healthProgressBar.setStringPainted(true);
    healthProgressBar.setValue(100);
    healthProgressBar.setMinimum(0);
    healthProgressBar.setBounds(318, 103, 166, 20);
    mainGame.add(healthProgressBar);

    if(healthProgressBar.getValue() <= healthProgressBar.getMinimum())
    {
        frame5.setVisible(false);
        frame7.setVisible(true);
    }

最佳答案

您实际上是在将值设置为 100 后立即检查它,因此它总是返回 false

相反,您可以使用监听器,例如:

healthProgressBar.addChangeListener(e -> {
    if (healthProgressBar.getValue() <= healthProgressBar.getMinimum()) {
        frame5.setVisible(false);
        frame7.setVisible(true);
    }
});

其他方法是更改​​将值设置为 healthProgressBar 的框架。

关于java - 当进度条达到 0 时打开新的 JFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29564717/

相关文章:

java - 如何读取System类API

Java JNI : possible to manage cache, 历史记录,IExplorer 中的临时文件?

java - 如何防止 View 在第一次调用后加载多次?

java - GUI 中未正确捕获 NullPointerException

java - 创建简单的 TicTacToe GUI 游戏

java - 在 Activity 之间传递 "preference variable",在原始 Activity 中设置值

java - 使用静态函数/变量相对于类/对象有什么好处吗?

android - 如何使用 JSCH 连接到 SSH 服务器?

eclipse - ubuntu eclipse beaglebone 调试不起作用

java - 自定义按钮在 BoxLayout 中时会缩小