如何在HashMap中获取JButton的key
How get the key of JButton in HashMap
我尝试使用下一个代码获取密钥
test = new HashMap<JButton, Character>();
for (int fila=0, filaA = 0; fila<btn.length;fila++, filaA++){
for (int columna=0, columnaA = 0;columna<btn[0].length;columna++, columnaA++){
btn[fila][columna] = new JButton();
test.put(btn[fila][columna], arr[filaA][columnaA]);
btn[fila][columna].addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {
if(e.getSource() instanceof JButton){
String letra = ((JButton)e.getSource()).getText();
if(e.isMetaDown()){
if(letra.equals("T")){
((JButton)e.getSource()).setText("O");
}
else if(letra.equals("O")){
((JButton)e.getSource()).setText("");
}else{
((JButton)e.getSource()).setText("T");
}
}else{
char k = test.get(((JButton)e.getSource()));
System.out.println(test.get(k));
}
}
}
});
window.add(btn[fila][columna]);
}
}
但在:
else{
char k = test.get(((JButton)e.getSource()));
System.out.println(test.get(k));
}
当我尝试获取分配给每个按钮的值时,只显示为空。我想要的是每个按钮,通过点击,在控制台上向我展示你的独特价值。
System.out.println(test.get(k));
在你的情况下 return 总是 null,那是因为 HashMap
只有一个内置的 get(Object key)
方法,而你试图通过char
值。没有用于将键检索到特定值的内置方法,例如:get(Object value)
因为与键不同,HashMap 中的所有值不需要是唯一的。
我尝试使用下一个代码获取密钥
test = new HashMap<JButton, Character>();
for (int fila=0, filaA = 0; fila<btn.length;fila++, filaA++){
for (int columna=0, columnaA = 0;columna<btn[0].length;columna++, columnaA++){
btn[fila][columna] = new JButton();
test.put(btn[fila][columna], arr[filaA][columnaA]);
btn[fila][columna].addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent e) {
if(e.getSource() instanceof JButton){
String letra = ((JButton)e.getSource()).getText();
if(e.isMetaDown()){
if(letra.equals("T")){
((JButton)e.getSource()).setText("O");
}
else if(letra.equals("O")){
((JButton)e.getSource()).setText("");
}else{
((JButton)e.getSource()).setText("T");
}
}else{
char k = test.get(((JButton)e.getSource()));
System.out.println(test.get(k));
}
}
}
});
window.add(btn[fila][columna]);
}
}
但在:
else{
char k = test.get(((JButton)e.getSource()));
System.out.println(test.get(k));
}
当我尝试获取分配给每个按钮的值时,只显示为空。我想要的是每个按钮,通过点击,在控制台上向我展示你的独特价值。
System.out.println(test.get(k));
在你的情况下 return 总是 null,那是因为 HashMap
只有一个内置的 get(Object key)
方法,而你试图通过char
值。没有用于将键检索到特定值的内置方法,例如:get(Object value)
因为与键不同,HashMap 中的所有值不需要是唯一的。