java - 整数不适用于 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;
解决方案
在 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");
}
}
推荐阅读
- function - 非图求解器中的过滤函数
- if-statement - 将此公式转换为数组公式
- c# - 无法将“System.DBNull”类型的对象转换为“System.Int32”类型的 ASP.NET
- json - JSON 模式验证 POST 与 GET
- android - 使用新的 Android BottomAppBar 实现 Android Jetpack Navigation 组件
- python - 从多个 ID 列创建新的 Pandas DataFrame 行
- javascript - 一个 Collapsible 应该一次打开
- events - 从 RabbitMq 消息中获取租户 ID 以进行 Db 连接
- python-3.x - 如何修复python中的“TypeError:需要一个类似字节的对象,而不是'str'”错误?
- ply - 将字母标记为运算符