Java 整数不与if语句一起使用

Java 整数不与if语句一起使用,java,if-statement,Java,If Statement,我正在制作一个基于文本的游戏,我正在尝试不同的方法来制作游戏的故事情节。(很抱歉,如果这是半难理解的,我是这个网站的新手,对Java还是相当陌生的,我正在为一个班级项目制作这篇文章) 我尝试的方法之一是将一个值(在本例中为LevelNum)增加1,每当显示一个不等于零的数字时,它就会将jLabel1的文本设置为任何文本 我试图通过使用if语句来实现这一点,如下所示: if(LevelNum == 0) { jLabel1.setText(StoryData.Lev

我正在制作一个基于文本的游戏,我正在尝试不同的方法来制作游戏的故事情节。(很抱歉,如果这是半难理解的,我是这个网站的新手,对Java还是相当陌生的,我正在为一个班级项目制作这篇文章)

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

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

if(LevelNum == 0) {
                jLabel1.setText(StoryData.LevelOne);
            }
LevelNum的增加如下所示:

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

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

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

整个代码可在此处找到:

StoryData在我的文本文档中是一个单独的类,各个字符串如下所示:
staticstringlevelone=“LevelOne-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;

标签值更改后,尝试调用
revalidate()
repaint()
更新用户界面查看完整代码,增加LevelNum的部分位于以下块中:

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

                }
            });
然后,在下面,您有以下代码:

if(LevelNum == 1) {
                jLabel1.setText(StoryData.LevelOne);
            }
让我们像计算机一样浏览代码。当我们到达第一个块时,我们添加一个新的ActionListener。但是,我们不会立即执行actionPerformed方法,因此LevelNum仍然是以前的方法。稍后,我们将看到if语句,但LevelNum没有增加

当触发ActionListener并执行actionPerformed方法时,它会增加LevelNum,然后打印新的LevelNum,但它不会更改jLabel1,因为没有代码告诉它这样做


看起来您要做的是在actionPerformed方法中更新jLabel1。

在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");
                    }

                }

请发布相关的代码片段,例如LevelNum的定义,以及是否实际调用了操作。我添加了LevelNum的代码,我没有添加的唯一原因是因为上次我放了太多代码,我因为代码太多而被骂,这就是为什么我选择将pastebin与所有代码链接在一起。在显示或单击按钮之前,初始化GUI时只需设置一次标签文本。你再也不会修改它了。这就是为什么它没有改变。