Так что это мой код:KeyPressed событие для любого элемента панели
public void keyPressed(KeyEvent ke){
int keyID = ke.getKeyCode();
Object o = ke.getSource();
if (keyID == KeyEvent.VK_ENTER){
if(o.equals(GUI.btnOK)){
//Do something
}
}}}
Итак, что это делает // Сделайте что-нибудь, когда JButton
называется btnOK
доступен через клавишу ENTER .
Вопрос: Как разместить o.equals(GUI.btnOK)
, чтобы активировать его при вводе, когда ничего Элемент главной панели нажат?
У этого есть несколько вещей, и btnOK
является одним из них. Моя главная панель:
pnlMain= new JPanel(null);
Я попытался:
if (keyID == KeyEvent.VK_ENTER){
if(o.equals(GUI.pnlMain)){
//Do something
}
}
Но это не похоже на работу, несмотря на то, что я сделал добавить событие в главной панели.
Пример:
if (keyID== KeyEvent.VK_ESCAPE){
if(o.equals(GUI.txtLogin) || o.equals(GUI.pwfPWD) || o.equals(GUI.btnOK)){
//Do this
igu.setVisible(false);
igu.dispose();
System.exit(0); }}
Вместо размещения всех кнопок можно получить вызваны ПОБЕГ в if(o.equals(whatever)|| etc...
Я хочу, чтобы это было доступно (кнопка побег нажата) для всякий раз, когда программа открыта везде в центре внимания.
У вас есть: если (KeyId == KeyEvent.VK_ENTER) и вы ожидаете, что программа для ввода, что если положение без нажатия клавиши ENTER? – pedromss
Я хочу, чтобы он «// Делал что-то», где бы я ни вводил элемент внутри JPanel ... менял «// DO something» на: \t \t \t \t GUI.setVisible (false); GUI.dispose(); System.exit (0); – Alpha2k
Для Swing обычно используют привязки клавиш на уровне AWT, нижнем уровне, 'KeyListener'. Подробнее о том, как их использовать, см. [Как использовать привязки клавиш] (http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html). Они звучат идеально для этого. –