当我不希望它

时间:2015-12-06 10:18:31

标签: javafx focus textfield menubar

有几个键盘有Alt Gr key。在我的瑞典语键盘布局上,要输入[字符,我必须按 Alt Gr + 8 (或 Ctrl + Alt + 8 )。

如果我要在JavaFX TextField中输入此字符两次,其中应用程序也有MenuBar,则菜单栏会保留焦点而不是文本字段。这使得我必须再次按 Alt Alt Gr 以使TextField获得焦点。在使用 Alt Gr 键输入任何字符后,我希望TextField具有焦点。

重现问题的代码:

public class MenuTest extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        Pane pane = new VBox();

        MenuBar menuBar = new MenuBar();
        menuBar.getMenus().add(new Menu("_File"));
        menuBar.getMenus().add(new Menu("_Test"));

        TextField input = new TextField();

        pane.getChildren().add(menuBar);
        pane.getChildren().add(input);

        Scene scene = new Scene(pane);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

重现的步骤:

TextField有焦点的地方:

  • 将键盘布局设置为瑞典语,按 Alt Gr + 8 (或 Ctrl + Alt + 8 )两次。对于其他键盘布局,请输入您选择的任何字符,其中包括 Alt Gr 键的使用。
  • 按向左箭头

预期行为[中插入了两个TextField个字符。插入符号在TextField中向左移动了一步。

实际行为[中插入了两个TextField个字符。另一个菜单突出显示并具有焦点

问题:

为什么会这样?甚至Windows的基本记事本应用程序也符合我的期望。

有什么方法可以让实际行为符合预期的行为?

0 个答案:

没有答案