【问题标题】:JFXButton looks clicked right after startJFXButton 看起来在启动后立即被点击
【发布时间】:2018-03-05 17:21:17
【问题描述】:

我的一个菜单按钮(左)在开始后看起来已经被点击或突出显示。

我还没有为这些按钮附加任何操作,所以当我点击这个按钮时,一切都开始看起来应该

三个按钮看起来都一样:

  <JFXButton layoutX="14.0" layoutY="122.0" prefHeight="48.0" prefWidth="101.0" style="-fx-background-color: #f72241; -fx-background-radius: 100;" text="M/M(a,b)/1" textFill="WHITE">
     <font>
        <Font size="15.0" />
     </font>
  </JFXButton>
  <JFXButton layoutX="150.0" layoutY="122.0" prefHeight="48.0" prefWidth="101.0" style="-fx-background-color: #f72241; -fx-background-radius: 100;" text="M/M(a,b)/c" textFill="WHITE">
     <font>
        <Font size="15.0" />
     </font>
  </JFXButton>
  <JFXButton layoutX="285.0" layoutY="122.0" prefHeight="48.0" prefWidth="101.0" style="-fx-background-color: #f72241; -fx-background-radius: 100;" text="M/GI(1,s)/1" textFill="WHITE">
     <font>
        <Font size="15.0" />
     </font>
  </JFXButton>

【问题讨论】:

    标签: java user-interface javafx desktop scenebuilder


    【解决方案1】:

    这是重点!

    有两种解决方案:

    将重点放在显示的其他内容上。

    button.sceneProperty().addListener((obs, ov, nv) -> {
        if(nv != null)
            nv.requestFocus();
    });
    

    或者设置焦点可遍历为false

    button.setFocusTraversable(false);
    

    您也可以在 fxml 中设置可遍历的焦点。

    【讨论】:

    • 在这种情况下,我必须给我的按钮一个 id 并在我的 java 代码中执行.setFocusTraversable(false)。那看起来不会那么好,因为我通过场景构建器配置我的视图。更新:
    • 您也可以在场景构建器中设置焦点遍历。
    猜你喜欢
    • 1970-01-01
    • 2011-05-24
    • 2016-04-30
    • 2016-06-05
    • 1970-01-01
    • 2020-09-06
    • 2020-07-01
    • 2019-09-29
    • 1970-01-01
    相关资源
    最近更新 更多