Control + W для выхода из системы

Я работаю над игрой, и здесь я хочу, чтобы конечный пользователь нажал Ctrl + W, чтобы выйти из системы.

Вот код, который я использовал:

int key = e.getKeyCode();
if(key == KeyEvent.VK_CONTROL && key == KeyEvent.VK_W) System.exit(1);

... но, похоже, это не сработало

Может ли кто-нибудь сказать мне, что не так с моим кодом?

Заранее спасибо!


person Star    schedule 19.06.2018    source источник
comment
Ну, key (как int) может быть только одним значением за раз, так что это никогда не будут оба ключа одновременно...   -  person k_ssb    schedule 19.06.2018
comment
Итак, есть ли способ использовать что-то вроде того, что я имел в виду, в Java?   -  person Star    schedule 19.06.2018
comment
Возможный дубликат Java-check, нажата ли управляющая клавиша   -  person luk2302    schedule 19.06.2018
comment
Вам нужно ИЛИ ваши две константы KeyEvent вместе.   -  person Rich    schedule 19.06.2018
comment
@Rich, но у меня есть другая команда, которую конечный пользователь нажимает W, чтобы двигаться вверх   -  person Star    schedule 19.06.2018
comment
А, хорошо... Я использовал || вместо | Благодарность   -  person Star    schedule 19.06.2018


Ответы (2)


KeyStroke keyExit = KeyStroke.getKeyStroke(KeyEvent.VK_CONTROL, KeyEvent.VK_W); 
Action performExit = new AbstractAction("Exit") {  
    public void actionPerformed(ActionEvent e) {     
        //exit method
    }
};

попробуйте на таком примере.

person chamzz.dot    schedule 19.06.2018
comment
Кажется, код не работает... Там, где вы прокомментировали //exit method, я набрал System.exit(1); - person Star; 19.06.2018

Я бы попробовал что-то вроде:

int key = e.getKeyCode();
if(key == (KeyEvent.VK_CONTROL | KeyEvent.VK_W)) System.exit(1);

Хотя это не проверено и по памяти.

person Rich    schedule 19.06.2018
comment
Но у меня есть другой элемент управления, который использует W в качестве игрока, движущегося вверх, поэтому, если я нажму W, система все равно выйдет. - person Star; 19.06.2018
comment
@Star, ты видишь разницу с тем, что ты запрашиваешь? - person Stultuske; 19.06.2018
comment
@Stultuske да ... здесь, если я нажму W на клавиатуре, он также выйдет из системы. - person Star; 19.06.2018
comment
| является ИЛИ, поэтому для его запуска достаточно только одного из ключей. но поскольку Netbeans использует сочетания клавиш CTRL+[] в меню, это должно быть возможно. может быть, проверить их код - person Stultuske; 19.06.2018
comment
Я использую Eclipse в качестве JDK. - person Star; 19.06.2018