Package

Source Code of JXGrabKeyTest

import java.awt.event.KeyEvent;
import java.io.File;

import javax.swing.JOptionPane;

import jxgrabkey.HotkeyConflictException;
import jxgrabkey.HotkeyListener;
import jxgrabkey.JXGrabKey;

public class JXGrabKeyTest {

  private static final int MY_HOTKEY_INDEX = 1;
  private static boolean hotkeyEventReceived = false;
 
  public static void main(String[] args) throws Exception {
    //Load JXGrabKey lib
    System.load(new File("lib/libJXGrabKey.so").getCanonicalPath());
   
    //Enable Debug Output
    JXGrabKey.setDebugOutput(true);
   
    //Register some Hotkey
    try{
      //int key = KeyEvent.VK_K, mask = KeyEvent.CTRL_MASK | KeyEvent.ALT_MASK | KeyEvent.SHIFT_MASK;
      int key = KeyEvent.VK_F2, mask = KeyEvent.ALT_MASK; //Conflicts on GNOME
     
      JXGrabKey.getInstance().registerAwtHotkey(MY_HOTKEY_INDEX, mask, key);
    }catch(HotkeyConflictException e){
      JOptionPane.showMessageDialog(null, e.getMessage(), e.getClass().getName(), JOptionPane.ERROR_MESSAGE);
     
      JXGrabKey.getInstance().cleanUp(); //Automatically unregisters Hotkeys and Listeners
      //Alternatively, just unregister the key causing this or leave it as it is
      //the key may not be grabbed at all or may not respond when numlock, capslock or scrollock is on
      return;
    }
       
    //Implement HotkeyListener
    HotkeyListener hotkeyListener = new jxgrabkey.HotkeyListener(){
      public void onHotkey(int hotkey_idx) {
        if (hotkey_idx != MY_HOTKEY_INDEX)
          return;
        hotkeyEventReceived = true;
      }
        };
       
        //Add HotkeyListener
    JXGrabKey.getInstance().addHotkeyListener(hotkeyListener);
   
    //Wait for Hotkey Event
    while(!hotkeyEventReceived){
      Thread.sleep(1000);
    }
   
    // Shutdown JXGrabKey
    JXGrabKey.getInstance().unregisterHotKey(MY_HOTKEY_INDEX); //Optional
    JXGrabKey.getInstance().removeHotkeyListener(hotkeyListener); //Optional
    JXGrabKey.getInstance().cleanUp();
  }
}
TOP

Related Classes of JXGrabKeyTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.