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