所以我一直试图用Java弄清楚一些事情。当弹出JFrame窗口时,我有点击事件触发器并在程序中打印“SUPSUP”。但我想知道有没有办法设置应用程序,如果我按下JFrame窗口外的按钮4仍然会打印“SUPSUP”?我的意思是我希望在java中有一个监听器,一般不与JFrame组件绑定,我不介意我是否需要使用密钥监听器。我正在尝试构建一个程序,每次点击按钮4时都会在屏幕上做某些事情,但是我无法点击蓝色的JFrame谢谢。
到目前为止,我有这段代码。
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
}
答案 0 :(得分:0)
现在这与FocusListeners
以及您所在的JFrame
处的某个时间点设置的焦点有关。如果您有多个JFrame并且单击其中一个以在另一个上输出内容,则可能是可能的,但是如果您单击桌面,例如,则无法通过本机Java库完成此操作。