我有一个带有奇怪行为的TextField的PopOver,这个PopOver由其他TextField拥有,因为当我输入单词'Fernández'
时,所有键都由内部TextField处理,除非我输入类似强调的元音它是由外部TextField收集的“á
”。
但是,当我显示由按钮拥有的相同PopOver工作正常并且内部TextField收到字母'á'
我很感激有任何帮助来解决它。
编辑:在这里你可以看到一个示例代码来显示这个。
公共类PopOverTest扩展了Application {
@Override
public void start(Stage primaryStage) {
CustomTextField externo = new CustomTextField();
ImageView imgView = new ImageView(new Image("test/image.png"));
externo.setLeft(imgView);
CustomTextField interno = new CustomTextField();
PopOver popOver = new PopOver();
popOver.setContentNode(interno);
popOver.stArrowLocation(PopOver.ArrowLocation.TOP_LEFT);
imgView.setOnMouseClicked(e -> {
popOver.show(imgView);
});
StackPane root = new StackPane();
root.getChildren().add(externo);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
答案 0 :(得分:0)
我找到了解决方案。
更改外部Textfield EventDispatcher并解决问题
EventDispatcher dispatcher = externalTextField.getEventDispatcher();
然后关注内部TextField
externalTextField.setEventDispatcher(interntalTextField.getEventDispatcher());
当失去焦点时恢复EventDispatcher
externalTextField.setEventDispatcher(dispatcher);
那是所有人!