首页 > 解决方案 > 整数不适用于 if 语句

问题描述

我正在制作一个基于文本的游戏,并且我正在尝试不同的方式来制作游戏的故事情节。(对不起,如果这有点难以理解,我是这个网站的新手,而且对 Java 还是很陌生,我正在为一个班级项目做这个)

我正在尝试的一种方法是将值(在本例中为 LevelNum)增加一,并且每当显示不等于零的数字时,它会将 jLabel1 的文本设置为任何文本。

我试图通过使用 if 语句来做到这一点,如下所示:

if(LevelNum == 0) {
                jLabel1.setText(StoryData.LevelOne);
            }

LevelNum的增加是这样完成的:

public void actionPerformed(ActionEvent e) {
                    LevelNum += 1;
                    System.out.println(LevelNum);

            }

(System.out 只是为了检查它是否在增加数量)

我遇到的问题是,无论 jLabel1 的值是什么,文本都不会改变,我也不知道为什么。

整个代码可以在这里找到:https ://pastebin.com/JSX6urFT

StoryData 是我的文本文档中的一个单独的类,各个字符串如下所示:static String LevelOne = "Level one test";

以下是与LevelNum相关的所有代码:

public class DemoGUI extends javax.swing.JFrame {

private static int LevelNumBackUp = 0;
private static int LevelNum = 0;
public JTextArea jLabel1;
public JTextField jText1;
public JButton jButton1;
public JButton jButton2;
public JButton jButton3;
public JButton jButton4;
public JButton jButtonStart;
public JTextArea jTextAreaStart;
public JButton jButtonCredits;
public JButton jButtonReturn;

public static void main(String[] args) {
    int LevelNum = 0;
    int LevelNumBackUp = 0;

标签: javaif-statement

解决方案


在 actionPerformed 中保持级别更改代码。尝试这个:

public void actionPerformed(ActionEvent e) {
                    LevelNum += 1;
                    System.out.println(LevelNum);
                    // Introduction
                    if (LevelNum == 1) {
                        jLabel1.setText("level1");
                    }
                    if (LevelNum == 2) {
                        jLabel1.setText("level2");
                    }
                    if (LevelNum == 3) {
                        jLabel1.setText("level3");
                    }

                }

推荐阅读