如何聽按鍵並觸發JButton?Java聽按鈕和鍵盤單擊
例如:
我有 「A」 的JButton作爲面板上的GUI。我在「aButton」上實現了一個buttonListener,它會將屏幕更改爲其他內容。我希望這個按鈕可以通過點擊鼠標和鍵盤來觸發。
如何在觸發此「A」JButton的同時按下鍵盤上的「a」,同時還實現了buttonListener?
我目前的代碼無法觸發按鍵事件。
ButtonListener listener;
KeyboardListener keyboardListener;
private JButton aButton;
public MyButtonPanel() {
listener = new ButtonListener();
aButton = new JButton ("A");
aButton.setFont (BUTTON_TEXT);
aButton.setPreferredSize (new Dimension (60,30));
aButton.addActionListener (listener);
aButton.addKeyListener (keyboardListener);
setLayout (new BorderLayout());
add (aButton, BorderLayout.CENTER);
}
private class KeyboardListener implements KeyListener
{
public void keyPressed(KeyEvent arg0) {
char c = arg0.getKeyChar();
System.out.println("Pressed " + c);
}
public void keyReleased(KeyEvent arg0) {
char c = arg0.getKeyChar();
System.out.println("Released " + c);
}
public void keyTyped(KeyEvent arg0) {
char c = arg0.getKeyChar();
System.out.println("Typed " + c);
}
}
private class ButtonListener implements ActionListener {
public void actionPerformed (ActionEvent event) {
Object source = event.getSource();
if (source == aButton) {
System.out.println("This is a");
}
}
}
}
請閱讀有關助記符的在這裏http://docs.oracle.com/javase/tutorial/uiswing/components/button.html 有一些JButton鍵盤筆畫鏈接的例子 – Sean 2012-02-16 15:51:34
我明白了所以我可以使用像這樣b3.setMnemonic(KeyEvent.VK_E); b3.setActionCommand(「enable」); – nowhere 2012-02-16 16:07:50