I'm trying to create a different actionPerformed
when Shift is held down while pressing a JButton, but when I use:
event.isShiftDown;
my program does not compile because it does't recognise it.
Asked
Active
Viewed 1,442 times
3

Vukašin Manojlović
- 2,645
- 2
- 21
- 26

Martin Gaviria
- 31
- 2
-
2You'll probably find the answer here: http://stackoverflow.com/questions/5517674/detecting-shift-modifiers-on-mouseevent-generated-from-click-in-swing – poplitea Dec 05 '12 at 01:36
2 Answers
6
Basically you need to bitwise-and the ActionEvent#getModifiers
result
if ((e.getModifiers() & InputEvent.SHIFT_MASK) != 0) {
// Shift is down...
}

MadProgrammer
- 343,457
- 22
- 230
- 366
4
As an alternative to checking the event modifiers directly, consider using a different Action
for each state of the shift key. You can supply the desired mask to the KeyStroke
used in your key binding, as outlined here. A related example using getMenuShortcutKeyMask()
is shown here.