Scala MouseEvent - Как узнать, какая кнопка была нажата? - PullRequest
8 голосов
/ 13 сентября 2010

Я пишу приложение Scala, используя Scala Swing.Я могу слушать MouseClicked, чтобы получать уведомления при каждом щелчке мышью, но как узнать, какая кнопка была нажата?Документация довольно плохая, поэтому я посмотрел в документации Java для MouseEvent, где сказано, что ключ может быть получен из поля модификаторов, поэтому я попытался вывести поле модификаторов события scala MouseClicked, которое оказалосьцелое число, 0 для левого щелчка, кнопка мыши 3 и кнопка 4 и 256 для правого щелчка.

Похоже, это будет работать, если мне нужно будет знать только разницу между левым и правым щелчком,но могу ли я быть уверен, что модификаторы все способы работают таким образом?В документации ничего не сказано, и, насколько я знаю, на модификаторы могут повлиять другие вещи, помимо того, какая кнопка мыши была нажата.Я также хотел бы знать разницу между левым щелчком и кнопкой мыши 3 и 4. Я не думаю, что пользователи ожидают, что они будут делать то же самое, что и левый щелчок.*, это может быть использовано для чего-либо?Документация ничего не говорит о том, что она делает.

1 Ответ

5 голосов
/ 13 сентября 2010

Вы всегда можете использовать x.peer.getButton для получения отображения Java (где x - ваше событие Scala MouseClicked).peer почти всегда содержит Java-эквивалент класса Scala - и в этом случае он есть.

...