如何使用变量的值引用变量名

时间:2019-06-15 02:20:02

标签: java variables graphics

好的。对于我的计算机科学项目,我们必须制作一个给老师留下深刻印象的程序或游戏。我选择了Battleship,并使用Netbeans Design UI进行了UI的基本概述。

因此,从本质上讲,我是将JPanel分配给船时将其设置为蓝色的方法之一,我不想编写400行代码来描述是否可以将船分配给每个可能的盒子的语句,我想知道是否有一种方法可以在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);
}

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

是的,假设它们实现了通用的接口但是,您需要将它们存储在某些东西中。假设它们的类型为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);
}