好的。对于我的计算机科学项目,我们必须制作一个给我们老师留下深刻印象的程序或游戏。我选择了 Battleship,并使用 Netbeans Design UI,我为我的 UI 制定了基本大纲。
所以本质上是我的方法之一,当你将一艘船分配给它时,将 JPanel 设置为蓝色,我不想写 400 行代码来描述他们可以将船分配到的每个可能的框的 if 语句,我想知道是否有办法引用 JPanel 名称中的变量值。我会告诉你我的意思。
因此,var 是已经从用户检索到的飞船的位置。 pA1 将是 A1 的玩家面板。
public static void pSetShip(String var){
var=("p"+var);
if (var.equals("pA1")){
pA1.setBackground(Color.BLUE);
}
}
有什么可能的方法代替使用 if 语句设置每个单独的框,我可以这样做:
public static void pSetShip(String var){
var=("p"+var);
(VALUE OF VAR VARIABLE).setBackground(Color.BLUE);
}
任何帮助将不胜感激!
是的,假设他们实现了一个通用接口。但是您需要将它们存储在某些东西中。假设它们是 JComponent
型,我会使用类似 Map<String, JComponent>
static Map<String, JComponent> map = new HashMap<>();
static {
map.put("pA1", pA1);
// ... for all valid components.
}
然后你可以像使用它一样
public static void pSetShip(String var){
map.get("p"+var).setBackground(Color.BLUE);
}