我有一个程序,在不同的类中编写了不同的 JPanel。我想根据用户单击的按钮打印特定的 JPanel。
当程序启动时,它只有三个按钮:“Animals JButton”、“Plants JButton”和一个 JFrame“frame”中的“Refresh JButton”;没有 JPanel。
例如,如果用户单击“Animals JButton”,JFrame 上将打印带有 Animals 的 JPanel。
“AnimalsJPanel”和“PlantsJPanel”是在不同的类中编写的。另一个类“PageReturner”有一个方法可以确定通过开关打印的内容。
public class Redirect {
String pageAnimals = "pageAnimals";
String pagePlants = "pagePlants";
String value;
public String pageRedirect (String pageID) {
switch (pageID) {
case pageAnimals:
value = (AnimalsJPanel animalsJPanel = new AnimalsJPanel());
break;
case pagePlants:
value = (PlantsJPanel plantsJPanel = new PlantsJPanel());
break;
case 2:
value = null;
break;
}
return null;
}
}
我在 netbeans 中收到“需要常量字符串表达式”和“不兼容类型”错误。我的 switch 语句可能有什么问题,是否有更好的方法来解决这个问题,即确定要打印的页面。 我想对此进行编码而不是使用卡片布局。我是 JAVA 的新手,正在尝试学习如何从类中获取对象。
我的 switch 语句做得好吗?我正在自学编程,没有人可以咨询。非常感谢任何建议
最佳答案
将在switch case
中使用的变量声明为final。
final String pageAnimals = "pageAnimals";
final String pagePlants = "pagePlants";
因为所有 case
标签在 Switch
中都应该是编译时常量。
关于java - switch 语句和返回值 - 如何使用 switch 来确定 JPanel 绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18143048/