обработка кросс-платформенных событий перетаскивания и контекстного меню в Java - PullRequest
0 голосов
/ 19 июля 2009

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

Теперь мой вопрос: как мне правильно различать эти два события? Для контекстных меню есть функция API, но для DnD я ее не нашел. Я использовал мышь вниз, чтобы вызвать DnD, но с этим, например, в Windows перестают работать контекстные меню, потому что они запускаются при наведении мыши вверх.

Ответы [ 2 ]

1 голос
/ 20 июля 2009

В учебнике Swing есть разделы «Как пользоваться меню» и «Перетаскивание».

В разделе меню показано, как отобразить всплывающее окно, проверив «isPopupTrigger» MouseEvent. Хотя начиная с JDK5 этот процесс стал проще, поскольку был добавлен метод setComponentPopupMenu ().

В разделе DnD показано, как использовать встроенную поддержку DnD.

1 голос
/ 19 июля 2009

Для DnD используйте комбинацию мыши вниз и перемещения мыши.

Для контекстного меню используйте событие щелчка мышью (поэтому меню появляется, когда кнопка мыши отпускается, а не при ее нажатии).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...