KeyEvents новая переменная KeyEvent?

Для жизни я не могу найти какую-либо помощь с этим в Интернете. Моя цель - написать функцию, которая происходит, когда удерживается Shift и щелкается мышью на приложении. Сейчас я просто сосредоточен на смене.

У меня есть этот класс:

public void keyPressed(KeyEvent e)
{

    if (e.isShiftDown())
    {
        //Do Something
    }

}

Затем в моем основном классе я догадался, что, по моему мнению, может сработать, и это не удалось.

KeyEvent e = new KeyEvent;
keyPressed(e);

С этой ошибкой:

KeyEvent cannot be resolved to a variable

Я видел примеры, которые имеют эту строку кода. Так что я застрял. Мои знания Java слишком ограничены, чтобы у меня были какие-либо идеи.

Любая помощь приветствуется.

1 ответ

Решение

Вы можете сосредоточиться только на щелчке, так как это определяющее событие. Shift - это клавиша-модификатор. Когда у тебя будет свой MouseEvent me, сделай me.isShiftDown()

http://docs.oracle.com/javase/6/docs/api/java/awt/event/InputEvent.html

Так что я думаю, это было бы что-то вроде

public void mousePressed(MouseEvent me) {
  if (me.isShiftDown()) {
    // Do the function
  }
}

Предполагая, что у вас есть какой-то случайный объект, например кнопка, которая может регистрировать щелчки:

JButton button = new JButton("I'm a button!");
button.addMouseListener(new MouseListener() {
  public void mousePressed(MouseEvent me) {
    if (me.isShiftDown()) {
      // Do the function
    }
  }
});

Теперь при каждом нажатии кнопки ваша программа будет автоматически проверять, нажата ли клавиша Shift, и, если да, выполнять вашу функцию.

Другие вопросы по тегам