http://pan.baidu.com/s/1mgNui5y以上是问题代码,抱歉字数有限不能直接放这里。主要问题代码是这样的publicvoidgo(){//构建JFrame等mainPanel.add(panelA());mainPanel.add(label);m...
http://pan.baidu.com/s/1mgNui5y
以上是问题代码,抱歉字数有限不能直接放这里。
主要问题代码是这样的
public void go(){
// 构建JFrame等
mainPanel.add(panelA());
mainPanel.add(label);
mainPanel.add(panelB());
/**在mainPanel上添加以上三个components后,
* 用鼠标点击 Button 1 和 2 都可以用,
* 小键盘上的“1”键也可以用;
* 但“2”键就不好用了,请教问题所在及解决方法 */
//结束构建JFrame
}
JPanel panelA(){ // 方法一
JPanel panelA = new JPanel();
addButton(panelA,"1");
return panelA;
}
JPanel panelB(){ // 方法二
JPanel panelB = new JPanel();
addButton(panelB,"2");
return panelB;
}
void addButton(JComponent parent, String name){ // 方法三
JButton button = new JButton(name);
button.setFocusable(false);
button.setActionCommand(name);
parent.add(button);
switch(name){
case "1":
parent.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD1,0), button);
parent.getActionMap().put(button, new Click(button));
button.addActionListener(new NumPadListener());
break;
case "2":
parent.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD2,0), button);
parent.getActionMap().put(button, new Click(button));
button.addActionListener(new NumPadListener());
break;
}
}
展开