1 | class MyMouseListener extends MouseAdapter {↵ | | 1 | class MyMouseListener extends MouseAdapter {↵
|
|
2 | @Override↵ | | 2 | @Override↵
|
3 | public void mouseClicked(MouseEvent e) {↵ | | 3 | public void mouseClicked(MouseEvent e) {↵
|
4 | handleEvent(e);↵ | | 4 | handleEvent(e);↵
|
5 | }↵ | | 5 | }↵
|
|
6 | @Override↵ | | 6 | @Override↵
|
7 | public void mousePressed(MouseEvent e) {↵ | | 7 | public void mousePressed(MouseEvent e) {↵
|
8 | handlePopupEvent(e);↵ | | 8 | handlePopupEvent(e);↵
|
9 | }↵ | | 9 | }↵
|
|
10 | @Override↵ | | 10 | @Override↵
|
11 | public void mouseReleased(MouseEvent e) {↵ | | 11 | public void mouseReleased(MouseEvent e) {↵
|
12 | handlePopupEvent(e);↵ | | 12 | handlePopupEvent(e);↵
|
13 | }↵ | | 13 | }↵
|
|
14 | /**↵ | | 14 | /**↵
|
15 | * @param e↵ | | 15 | * @param e↵
|
16 | */↵ | | 16 | */↵
|
17 | private void handlePopupEvent(MouseEvent e) {↵ | | 17 | private void handlePopupEvent(MouseEvent e) {↵
|
18 | Point p = e.getPoint();↵ | | 18 | Point p = e.getPoint();↵
|
19 | if (e.isPopupTrigger()) {↵ | | 19 | if (e.isPopupTrigger()) {↵
|
20 | // check if a single entry is selected↵ | | 20 | // check if a single entry is selected↵
|
21 | if (getSelectedIndices().length <= 1) {↵ | | 21 | if (getSelectedIndices().length <= 1) {↵
|
22 | // select new item↵ | | 22 | // select new item↵
|
23 | int index = locationToIndex(p);↵ | | 23 | int index = locationToIndex(p);↵
|
24 | setSelectedIndex(index);↵ | | 24 | setSelectedIndex(index);↵
|
25 | }↵ | | 25 | }↵
|
26 | // show context menu↵ | | 26 | // show context menu↵
|
27 | getPopupMenu().show(e.getComponent(), p.x, p.y);↵ | | 27 | getPopupMenu().show(e.getComponent(), p.x, p.y);↵
|
28 | }↵ | | 28 | }↵
|
29 | }↵ | | 29 | }↵
|
|
30 | /**↵ | | 30 | /**↵
|
31 | * @param e↵ | | 31 | * @param e↵
|
32 | */↵ | | 32 | */↵
|
33 | private void handleEvent(MouseEvent e) {↵ | | 33 | private void handleEvent(MouseEvent e) {↵
|
34 | | | 34 |
|