我正在尝试在 JnativeHook MoseClicked 事件发生时设置 javafx TextField 文本。但我遇到“NullPointerException”错误。我将控制器类代码放在这里:
public class FXMLDocumentController implements Initializable, NativeMouseListener {
@FXML
private TextField txt_Search;
@Override
public void initialize(URL url, ResourceBundle rb) {
txt_Search.setText("dvdf"); //this is work and no problem is in here
Listener();
}
public void Listener() {
// Clear previous logging configurations.
LogManager.getLogManager().reset();
// Get the logger for "org.jnativehook" and set the level to off.
Logger logger = Logger.getLogger(GlobalScreen.class.getPackage().getName());
logger.setLevel(Level.OFF);
try {
GlobalScreen.registerNativeHook();
} catch (NativeHookException ex) {
System.err.println("There was a problem registering the native hook.");
System.err.println(ex.getMessage());
System.exit(1);
}
// Construct the example object.
FXMLDocumentController example = new FXMLDocumentController();
// Add the appropriate listeners.
GlobalScreen.addNativeMouseListener(example);
}
@Override
public void nativeMouseClicked(NativeMouseEvent nme) {
if (nme.getClickCount() == 2) {
System.out.println("Double Click Event");
txt_Search.setText("Mouse clicked");
}
}
@Override
public void nativeMousePressed(NativeMouseEvent nme) {
// throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void nativeMouseReleased(NativeMouseEvent nme) {
// throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}
并且正在发生此错误:
在 org.jnativehook.GlobalScreen$EventDispatchTask 的 org.jnativehook.GlobalScreen$EventDispatchTask.processButtonEvent(Unknown Source)的 FXMLDocumentController.nativeMouseClicked(FXMLDocumentController.java:60)
的线程“JNativeHook Dispatch Thread”java.lang.NullPointerException中双击事件异常 。 processButtonEvent(Unknown Source) at org.jnativehook.GlobalScreen$EventDispatchTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor .java:617) 在 java.lang.Thread.run(Thread.java:745)
更新:
我更新了我的代码并使用 @FXML 注释来注释 txt_Search