forked from LupusNobilis/java-org.hwo
KeyStrokeHelper: Fix Component Issue
parent
32a76ad8b5
commit
97b59d4ddd
|
@ -29,7 +29,7 @@ public class KeyStrokeHelper {
|
|||
ArrayList<KeyStrokeListener> keystrokeListeners;
|
||||
JComponent component;
|
||||
JFrame frame;
|
||||
boolean focusedWindow;
|
||||
private boolean focusedWindow;
|
||||
|
||||
public KeyStrokeHelper(JComponent component)
|
||||
{
|
||||
|
@ -42,15 +42,19 @@ public class KeyStrokeHelper {
|
|||
{
|
||||
keystrokeListeners = new ArrayList<KeyStrokeListener>();
|
||||
this.frame = frame;
|
||||
this.component = frame.getRootPane();
|
||||
this.focusedWindow = true;
|
||||
}
|
||||
|
||||
public KeyStrokeHelper addKeyCode(int keyCode)
|
||||
{
|
||||
int focused;
|
||||
|
||||
if (focusedWindow)
|
||||
frame.getRootPane().registerKeyboardAction(new KeyStrokeActionListener(keyCode), KeyStroke.getKeyStroke(keyCode, 0), JComponent.WHEN_IN_FOCUSED_WINDOW );
|
||||
focused = JComponent.WHEN_IN_FOCUSED_WINDOW;
|
||||
else
|
||||
component.registerKeyboardAction(new KeyStrokeActionListener(keyCode), KeyStroke.getKeyStroke(keyCode, 0), JComponent.WHEN_FOCUSED);
|
||||
focused = JComponent.WHEN_FOCUSED;
|
||||
component.registerKeyboardAction(new KeyStrokeActionListener(keyCode), KeyStroke.getKeyStroke(keyCode, 0), focused);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
@ -78,5 +82,13 @@ public class KeyStrokeHelper {
|
|||
for (KeyStrokeListener listener:keystrokeListeners)
|
||||
listener.keyStroke(new KeyStrokeParameters(keyCode));
|
||||
}
|
||||
|
||||
public boolean isFocusedWindow() {
|
||||
return focusedWindow;
|
||||
}
|
||||
|
||||
public void setFocusedWindow(boolean focusedWindow) {
|
||||
this.focusedWindow = focusedWindow;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue