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



好的。对于我的计算机科学项目,我们必须制作一个给我们老师留下深刻印象的程序或游戏。我选择了 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);
}

相关内容

  • 没有找到相关文章

最新更新