- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用子类 ColorAction 来扩展 AbstractAction 类。此类处理 ActionPerformed 方法的方法是获取用户的字符串格式输入,并将其与 colorKey
中的 Color 值(String 的 HashMap)进行匹配 键和颜色对象。如果没有找到具有指定键的 Color 对象,则会抛出异常。
对于我的一生,我不知道如何做到这一点。也许我的游戏已经关闭了?我是否应该采用字符串输入(它应该是颜色的名称),并检查指定的字符串是否与其中一个颜色对象匹配?我应该使 ActionEvent 等于用户输入颜色吗?我脑子里闪过很多想法,但没有确定的赢家。
public class ColorAction extends AbstractAction{
Map<String, Color> colorMap;
private String input;
public ColorAction(String in) {
input = in;
colorMap = new HashMap<>(); //how can i enter a value that is a full range of colors?
}
@Override
public void actionPerformed(ActionEvent e){
if(colorMap.containsKey(input){
//...
}
}
}
最佳答案
如果我正确理解您的目标,colorMap
是您预定义的独立 map ,因此应该是静态的。
这是填充静态 map 的一种可能方法:
private static final Map<String, Color> colorMap = createColorMap();
private static Map<String, Color> createColorMap() {
Map<String, Color> colorMap = new HashMap<>();
//Fill colorMap
return colorMap;
}
此外,您通常可以通过调用 actionPerformed
方法中的 e.getActionCommand()
来获取用户输入。我不明白为什么您要将用户输入传递给 ColorAction
的构造函数。
@Override
public void actionPerformed(ActionEvent e){
//Assumes the map doesn't have any keys containing upper case letters.
//By calling toLowerCase, if the user inputs "Red", it would still match
//the key "red".
String input = e.getActionCommand().toLowerCase();
if(colorMap.containsKey(input){
//...
}
}
也就是说,您可能根本不需要构造函数。
关于java - ColorAction 扩展了 AbstractAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16700232/
我正在尝试使用子类 ColorAction 来扩展 AbstractAction 类。此类处理 ActionPerformed 方法的方法是获取用户的字符串格式输入,并将其与 colorKey 中的
我正在尝试循环 ColorAction 动画。这是我的代码: ColorAction action = new ColorAction(); ShapeRenderer shapeRenderer;
我是一名优秀的程序员,十分优秀!