所以我一直在试图找出一些与Java的东西。当弹出JFrame窗口时,我点击事件触发器并在程序中打印“SUPSUP”。但我想知道是否有办法设置应用程序,如果我在JFrame窗口外按下按钮4,“SUPSUP”仍将被打印?我的意思是我想在java中拥有一个不受JFrame组件限制的监听器,如果我需要使用一个监听器,我也不介意。我试图建立一个程序,每次点击按钮4时都会在屏幕上做某些事情,但我无法点击蓝色的JFrame谢谢。Java - 是否有可能在任何时候检测鼠标按钮四或KeyPress?
到目前为止我有这段代码。
public class CriticalMassWizard implements MouseListener
{
private static CriticalMassWizard instance = null;
private static Robot robot;
private static boolean triggerSpam;
private static JFrame frame = new JFrame("Tester");
// Singleton
public static CriticalMassWizard getInstance()
{
if(instance == null) {
instance = new CriticalMassWizard();
instance.setUpFrame();
try {
robot = new Robot();
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return instance;
}
private void setUpFrame()
{
frame.setResizable(true);
frame.setSize(300, 300);
frame.getContentPane().setBackground(Color.BLUE);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.addMouseListener(this);
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
if(e.getButton() == 4)
{
System.out.println("SUPSUP");
}
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
+2
您可能想看看http://kra.lc/blog/2011/07/java-global-system-hook/ –
+3
不通过本地Java库,您将需要一个JNI/JNA解决方案 –
+0
@ExcelledProducts我试图在那里实现代码,但我一直遇到UnsatisfiedLinkError你会知道如何解决这个问题吗? –