KeyListener Swing и несколько клавиш нажаты одновременно

Для тех, кто использует nginx и имеет белый экран даже для файла с <?php echo 123;. В моем случае у меня не было этой опции для PHP в файле конфигурации nginx:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

Этот параметр не был в файле fastcgi_params, поэтому PHP не работал и ошибок не было в журналах.

12
задан Akhil Jain 21 January 2013 в 17:07
поделиться

2 ответа

Используйте коллекцию, чтобы запоминать, какие клавиши в данный момент нажимаются, и проверять, нажимается ли более одной клавиши при каждом нажатии клавиши.

class MultiKeyPressListener implements KeyListener {

    // Set of currently pressed keys
    private final Set<Character> pressed = new HashSet<Character>();

    @Override
    public synchronized void keyPressed(KeyEvent e) {
        pressed.add(e.getKeyChar());
        if (pressed.size() > 1) {
            // More than one key is currently pressed.
            // Iterate over pressed to get the keys.
        }
    }

    @Override
    public synchronized void keyReleased(KeyEvent e) {
        pressed.remove(e.getKeyChar());
    }

    @Override
    public void keyTyped(KeyEvent e) {/* Not used */ }
}
16
ответ дан 2 December 2019 в 19:31
поделиться

Интерфейс KeyListener позволяет отдельно определять нажатие и отпускание клавиш. Следовательно, вы можете поддерживать набор «активных клавиш», то есть клавиш, которые были нажаты, но еще не отпущены.

2
ответ дан 2 December 2019 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: