如何为java.awt.Color创建一个switch语句

问题描述 投票:0回答:1

所以,我正在制作一个小型Java游戏作为学校项目,并希望返回一个应该在HashMap中的图像。在我调用的方法中,我想将java.awt.Color作为参数并在其上创建一个switch语句。

(注意:进入该功能的所有颜色都是默认颜色,如“Color.red”或“Color.green”!)

我已经尝试使用Color的RGB值,但这不起作用。

继承人工作代码:

   private static HashMap<Color, Image> blocks_hash;

    public static void setBlock(Color color, Image image) { blocks_hash.put(color, image); }

    public static Image getBlock(Color color) {
        if(blocks_hash.containsKey(color))
            return blocks_hash.get(color);
        else
            switch (color.getRGB()) {
                case Color.red.getRGB():
                    return getBlocks().getSubimage(0, 0, 60, 60);
            }
        return null;
    }

java colors switch-statement
1个回答
0
投票

你不能制作一个开关盒,因为它已经不变,请参阅here

您可以将颜色更改为枚举字段

class newClass {
 enum Colors {RED,GREEN,BLACK}

 public static Image getBlock(Colors colors) {
    switch (colors){
        case BLACK:
            System.out.println("BLACK");;
            break;
        case GREEN:
            System.out.println("GREEN");;
            break;
        case RED:
            System.out.println("RED");
            break;
            default:
                System.out.println("non color");
    }
}

P.S没有开关盒

class newClass {
 enum Colors {RED,GREEN,BLACK}

 public static Image getBlock(Colors colors) {

    if(colors==BLACK){
      System.out.println("BLACK");
}else if(colors==GREEN){
      System.out.println("GREEN");
}else if(colors==RED){
      System.out.println("RED");
}else
      System.out.println("non color");
    }
}

并适用于您的代码

public static Image getBlock(Color color) {
    if (blocks_hash.containsKey(color)) {
        if (color == Color.BLACK) {
            System.out.println("Black");
        } else if (color == Color.CYAN) {
            System.out.println("CYAN");
        }
    } else {
        System.out.println("non color");
    }
    return null;
}
© www.soinside.com 2019 - 2024. All rights reserved.