Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 限制数字开关/if选项?_Java - Fatal编程技术网

Java 限制数字开关/if选项?

Java 限制数字开关/if选项?,java,Java,小免责声明我是Java新手,这是我试图编写的第一个真正的程序 我目前正在写一个有3个班级的课程。第一个是一个带有JComboBox、4个JButton和20个JTextFields的GUI 第二个从JComboBox获取信息,并使用它使用一组if语句为4个JButton提供标签 根据单击的按钮和JComboBox中使用一组switch语句的选择,第三个按钮在单击其中一个JButton时填充JTextFields 前两个类可以正常工作,第三个类可以正常工作,直到我输入x数量的开关,然后我开始得到一

小免责声明我是Java新手,这是我试图编写的第一个真正的程序

我目前正在写一个有3个班级的课程。第一个是一个带有JComboBox、4个JButton和20个JTextFields的GUI

第二个从JComboBox获取信息,并使用它使用一组if语句为4个JButton提供标签

根据单击的按钮和JComboBox中使用一组switch语句的选择,第三个按钮在单击其中一个JButton时填充JTextFields

前两个类可以正常工作,第三个类可以正常工作,直到我输入x数量的开关,然后我开始得到一个错误

我的第三类代码的一个小例子是

switch (hiddenText) {
        case "Abecean Longfin":
        if (command.equals("Weakness to Frost")){
        gui.r1.setText("Elves Ear");
        gui.r2.setText("Fire Salts");
        gui.r3.setText("Ice Wraith Teeth");
        gui.r4.setText("White Cap");
        gui.r5.setText("");
        gui.r6.setText("");
        gui.r7.setText("");
        gui.r8.setText("");
        gui.r9.setText("");
        gui.r10.setText("");
        gui.r11.setText("");
        gui.r12.setText("");
        gui.r13.setText("");
        gui.r14.setText("");
        gui.r15.setText("");
        gui.r16.setText("");
        gui.r17.setText("");
        gui.r18.setText("");
        gui.r19.setText("");
        gui.r20.setText("");

        }
        if (command.equals("Fortify Sneak")){
        gui.r1.setText("Beehive Husk");
        gui.r2.setText("Frost Mirriam");
        gui.r3.setText("Hawk Feathers");
        gui.r4.setText("Human Flesh");
        gui.r5.setText("Powdered Mammoth Tusk");
        gui.r6.setText("Purple Mountain Flower");
        gui.r7.setText("");
        gui.r8.setText("");
        gui.r9.setText("");
        gui.r10.setText("");
        gui.r11.setText("");
        gui.r12.setText("");
        gui.r13.setText("");
        gui.r14.setText("");
        gui.r15.setText("");
        gui.r16.setText("");
        gui.r17.setText("");
        gui.r18.setText("");
        gui.r19.setText("");
        gui.r20.setText("");
        }
        if (command.equals("Weakness to Poison")){
        gui.r1.setText("Bleeding Crown");
        gui.r2.setText("Chaurus Eggs");
        gui.r3.setText("Deathbell");
        gui.r4.setText("Giant Lichen");
        gui.r5.setText("Pine Thrush Egg");
        gui.r6.setText("Sabre Cat Tooth");
        gui.r7.setText("Small Antlers");
        gui.r8.setText("");
        gui.r9.setText("");
        gui.r10.setText("");
        gui.r11.setText("");
        gui.r12.setText("");
        gui.r13.setText("");
        gui.r14.setText("");
        gui.r15.setText("");
        gui.r16.setText("");
        gui.r17.setText("");
        gui.r18.setText("");
        gui.r19.setText("");
        gui.r20.setText("");
        }
        if (command.equals("Fortify Restoration")){
        gui.r1.setText("Cyrodilic Spadetail");
        gui.r2.setText("Salt Pile");
        gui.r3.setText("Small Antlers");
        gui.r4.setText("Small Pearl");
        gui.r5.setText("");
        gui.r6.setText("");
        gui.r7.setText("");
        gui.r8.setText("");
        gui.r9.setText("");
        gui.r10.setText("");
        gui.r11.setText("");
        gui.r12.setText("");
        gui.r13.setText("");
        gui.r14.setText("");
        gui.r15.setText("");
        gui.r16.setText("");
        gui.r17.setText("");
        gui.r18.setText("");
        gui.r19.setText("");
        gui.r20.setText("");
        }
        break;
总共有92个案例,每个案例都有4个if语句,程序运行良好,直到我得到57个案例,2个if语句,然后我在IDE的类选项卡标题中得到一个错误符号(使用NetBeans),但不在代码本身中

当我编译并运行代码时,会出现一个错误框,上面写着“一个或多个编译有错误的项目”,但如果我选择无论如何运行,就我所见,程序将运行良好

我试过用各种方法编写代码。最初使用if语句,最初将类2和3作为同一个类,我总是在达到x个选择量时出现这个错误

在以前的版本中,我有时会看到错误符号出现在IDE的类选项卡标题中,而不是像往常一样出现在代码中,但当试图运行程序时,它根本不会运行,并且出现了一些类路径错误,我现在似乎无法重现,因此无法发布准确的代码

从我做的测试来看。删除代码的不同部分似乎是在添加x个选项时发生的。我可以添加第52个事例和第3个if语句,然后出现错误,但是如果我删除了之前的if语句,那么仍然有52个事例和2个if语句,那么一切都很好

从实验来看,我可以使用的switch/if语句的数量似乎是有限制的,尽管从理论上看,我可以使用无限量的switch/if语句


因此,我的问题是,我可以使用的开关/如果语句的数量是否有限制,或者在我输入x个开关/如果语句时是否有其他原因导致错误?

您需要将数据与代码分开。将所有这些数据粘贴在地图和列表的组合中,并使用一些简单、通用的代码来更新gui元素

// setup data code
List<String> elements = Arrays.asList("Elves Ear", "Fire Salts", ...);
Map<String,List<String>> elementMap;
elementMap.put("Weakness to Frost");

// setup ui code
List<String> elements = elementMap.get(command);
initUI(elements);

public void initUI(List<String> elements) {
  gui.r1.setText(elements.get(0));
  // ...
}
//设置数据代码
List elements=Arrays.asList(“精灵耳朵”、“火盐”…);
地图元素地图;
元素地图。放置(“弱点到霜”);
//设置用户界面代码
List elements=elementMap.get(命令);
initUI(元素);
公共void initUI(列表元素){
gui.r1.setText(elements.get(0));
// ...
}
注意,您可以将所有文本字段保留在一个列表中,然后更新代码为:

public void initUI(List<String> elements) {
  for(int i = 0; i< textFields.size(); ++i) {
    textFields.get(i).setText(elements.get(i));
  }
}
public void initUI(列表元素){
对于(int i=0;i
一般来说,如果您发现自己编写了大量重复的代码,那么您可能是做错了


此外,正如@thatidiotguy在评论中指出的那样,随着您的进步,您可以将数据从代码中移出,如我的示例所示,移动到某种单独的配置文件中。

首先,如果您编写了那么多if语句,则会出现严重错误。我知道这是你的第一个程序,但我只是想让你知道,你不必那么痛苦地打字。特罗洛尔,天空炼金术,嗯。@Thatidotguy-真的。然而,我想用婴儿步。此时的介绍文件io可能有点多。:)Java实际上使文件io变得微不足道。我个人认为,这比学习大量java.util对象的API要容易得多,这些对象都是巨大的java库类。如果要查看,请参阅java.util.Scanner。编辑-哎哟,你不是在操作。扫描仪还不错。@ThatiditGuy-不确定扫描仪和文件io是否比硬编码列表简单。java中的文件io当然比某些语言简单,但我不确定它是否“微不足道”;虽然(sc.hasNextLine()){String line=sc.nextLine();}这当然是有争议的,但它不能变得更简单,你知道吗?@thatidotguy-同样,我并不是说它不太容易(当然,假设知道API)。我使用了一个简单兼容的定义,这个定义与第一次编写代码并仍在处理基本循环的人兼容。