尝试从JnativeHook鼠标事件设置javafx TextField文本时出现NullPointerException错误

尝试从JnativeHook鼠标事件设置javafx TextField文本时出现NullPointerException错误,java,javafx,nullpointerexception,jnativehook,Java,Javafx,Nullpointerexception,Jnativehook,当JnativeHook MoseClicked事件发生时,我试图设置javafx TextField文本。但我面临“NullPointerException”错误。我将控制器类代码放在这里: public class FXMLDocumentController implements Initializable, NativeMouseListener { @FXML private TextField txt_Search; @Override public void initializ

当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.
}
}

这个错误正在发生:

双击事件
线程“JNativeHook分派线程”java.lang.NullPointerException中出现异常
在FXMLDocumentController.nativeMouseClicked(FXMLDocumentController.java:60)
在org.jnativehook.GlobalScreen$EventDispatchTask.processButtonEvent(未知源)
在org.jnativehook.GlobalScreen$EventDispatchTask.processButtonEvent(未知源)
在org.jnativehook.GlobalScreen$EventDispatchTask.run(未知源)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
运行(Thread.java:745)

更新:

我更新我的代码,并用@FXML注释对txt\U搜索进行注释



@Kingtak您从未初始化过“txt_搜索”变量。您可以在此处和FXML文件中使用@FXML注释将id分配给此处的文本字段。

@Kingtak您从未初始化过“txt_搜索”变量。您可以在此处和FXML文件中使用@FXML注释将id分配给此处的文本字段。

您应该返回并查看使用wiki的一节。默认情况下,此库生成的事件不会在Swing事件调度线程上运行!您必须包装对swing组件的访问,或使用
GlobalScreen.setEventDispatcher(新的SwingDispatchService())在注册挂钩之前。有关更多信息,请阅读和。

您应该返回并查看用法wiki的部分。默认情况下,此库生成的事件不会在Swing事件调度线程上运行!您必须包装对swing组件的访问,或使用
GlobalScreen.setEventDispatcher(新的SwingDispatchService())在注册挂钩之前。有关详细信息,请阅读有关和的信息。

当您尝试使用它时,
txt\u Search
看起来是空的。我不想读取字段值。当我想在初始化方法中将文本设置为txt_搜索时,没有问题。只有在初始化方法之外才会发生此错误。当您尝试使用它时,
txt_搜索
看起来是空的。我不想读取字段值。当我想在初始化方法中将文本设置为txt_搜索时,没有问题。只有在初始化方法之外才会发生此错误。当您尝试使用它时,
txt_搜索
看起来是空的。我不想读取字段值。当我想在初始化方法中将文本设置为txt_搜索时,没有问题。只有在初始化方法之外,才会发生此错误。txt_搜索是textField的fx:id。我添加了@FXML注释。但问题没有解决。我认为txt_搜索字段中没有问题。问题就在initialize方法之外。txt_搜索是fx:id of textField。我添加了@FXML注释。但是问题没有解决。我不认为txt_搜索字段中存在问题。问题就在initialize方法之外。txt_搜索是fx:id of textField。我添加了@FXML注释。但是问题没有解决。我不认为txt_搜索字段中存在问题。问题不在initialize方法范围内。感谢您的帮助。是javafx的类似解决方案。我不想使用Swing componnetsCan您可以让我知道javafx的解决方案是什么,这样我就可以在Wiki上添加注释了吗?谢谢您的帮助。是javafx的类似解决方案。我不想使用Swing componnetsCan您可以让我知道javafx的解决方案是什么,这样我就可以在Wiki上添加注释了吗?谢谢您的帮助。是javafx的类似解决方案。我不想使用Swing componnetsCan您可以让我知道javafx的解决方案是什么,这样我就可以在Wiki上添加注释了吗?