尝试从JnativeHook鼠标事件设置javafx TextField文本时出现NullPointerException错误
当JnativeHook MoseClicked事件发生时,我试图设置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
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上添加注释了吗?