所以,我正在制作一个小型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;
}
你不能制作一个开关盒,因为它已经不变,请参阅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;
}