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.processButtonEvent(Unknown Source)の org.jnativehook.GlobalScreen $EventDispatchTask
のスレッド「JNativeHook Dispatch Thread」でのダブルクリック イベント例外 java.util.concurrent.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor) で java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) で org.jnativehook.GlobalScreen$EventDispatchTask.run(不明なソース)で processButtonEvent (不明なソース) .java:617) で java.lang.Thread.run(Thread.java:745)
アップデート:
コードを更新し、txt_Search に @FXML アノテーションを付けます