JAVA MouseEvent не работает [дубликат]

startActivity

Запустите действие, например, вы запустили приложение: например: у вас есть приложение с домашним экраном и экраном пользовательской информации: если вы нажмете кнопку пользовательской информации, вы начинаете с этой информацией активность пользователя.

startActivityForResult

Запустите действие и ожидайте чего-то взамен. Например, на экране пользовательской информации вы можете загрузить изображение профиля. Вы начинаете действие галереи с явной целью вернуть URI с предпочтительным изображением. Вы запускаете эту операцию буквально, чтобы получить результат (рисунок. Есть некоторые технические способы убедиться, что вы действительно получили результат, но они совершенно понятны в руководстве.

3
задан GoldenLyfe 29 December 2012 в 22:44
поделиться

3 ответа

Взгляните на Java KeyListener для JFrame не отвечает? .

Вам нужно зарегистрировать свои KeyListener и MouseListener для каждого JComponent, который вы хотите прослушивание:

public Hello() {
    addKeyListener(this);
    addMouseListener(this);
    panel.addKeyListener(this);
    panel.addMouseListener(this);
    frame.addKeyListener(this);
    frame.addMouseListener(this);
}

Редактирование: события клавиш и мыши запускаются только с JComponent с фокусом в то время. Из-за этого, похоже, существует консенсус в отношении того, что KeyBindings может быть благоприятным для KeyListeners. Однако у них есть свои приложения, и поэтому здесь нет жесткого и быстрого правила. Прочитайте « Как написать прослушиватель клавиш » и « Как написать привязку клавиш », и вы получите суть.

10
ответ дан Community 19 August 2018 в 07:38
поделиться
  • 1
    Благодарю. Это относится и к JComponents? Как каждый JLabel, JTextField и т. Д.? Или все они будут работать, если я добавлю их на панель? Будет проголосован через 5 минут. – GoldenLyfe 29 December 2012 в 22:54
  • 2
    Yup, единственный JComponent, который будет запускать события, - это тот, у кого есть focus в то время. Как записать прослушиватель клавиш и Как записать привязку клавиш разбить различия между ними; которые очень тонкие, но заслуживающие внимания, прежде чем писать код, вы будете пахать позже. – Sean Connolly 29 December 2012 в 23:00
  • 3
    @SeanConnolly, пожалуйста, сделайте этот комментарий частью вашего ответа. KeyListeners следует избегать (частично по этой причине) в пользу KeyBindings – MadProgrammer 29 December 2012 в 23:12

Попробуйте это вместо:

 panel.addKeyListener(this);
 panel.addMouseListener(this);

Вы должны добавить слушателей к каждому компоненту, который хотите прослушать.

1
ответ дан aly 19 August 2018 в 07:38
поделиться

Лучше избегать использования KeyListeners с JPanel, вместо этого используйте KeyBindings . JPanel не может получить фокус, поэтому он не может взаимодействовать с KeyEvents. Используя KeyBindings, вы можете сопоставить действие с KeyStroke, даже если компонент не имеет фокуса.

2
ответ дан Reimeus 19 August 2018 в 07:38
поделиться
Другие вопросы по тегам:

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