You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaFX中如何通过控制器代码点击按钮关闭JFXNodesList

解决JFXNodesList点击按钮关闭(融合)的问题

嘿,我之前在JavaFX 8搭配JFoenix 8.0.3的项目里正好用过JFXNodesList,这个需求很容易实现!

核心思路

JFXNodesList本身提供了专门的方法来触发关闭(融合)动画,你只需要在按钮的点击事件里调用这个方法就行。

具体步骤

  1. 在控制器中注入JFXNodesList
    首先确保你的控制器类里通过@FXML注解拿到FXML中定义的algorithmList组件:

    @FXML
    private JFXNodesList algorithmList;
    
  2. 绑定按钮点击事件
    你有两种方式给按钮绑定点击逻辑:

    • 方式一:在FXML中直接绑定到控制器的方法
      给按钮添加onAction属性,指向控制器里的处理方法:
      <JFXButton text="关闭算法列表" onAction="#closeAlgorithmList" layoutX="285.0" layoutY="180.0" />
      
    • 方式二:在控制器的initialize()方法中动态绑定
      如果更习惯在Java代码里处理事件,可以这样写:
      @FXML
      private JFXButton closeButton; // 假设按钮的fx:id是closeButton
      
      @FXML
      private void initialize() {
          closeButton.setOnAction(event -> algorithmList.close());
      }
      
  3. 实现关闭逻辑
    在控制器的事件处理方法里,调用JFXNodesList的close()方法,这个方法会自动执行融合动画,把列表收回去:

    @FXML
    private void closeAlgorithmList(ActionEvent event) {
        // 触发融合关闭动画
        algorithmList.close();
    }
    

额外说明

  • 如果列表已经处于关闭状态,调用close()方法不会有任何异常,JFoenix会自动处理这种情况。
  • 要是你想自定义关闭动画,可以用algorithmList.setCloseAnimation()方法传入自定义的Timeline对象,但默认的动画效果已经足够贴合“融合”的需求了。

内容的提问来源于stack exchange,提问作者Toumi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:16:15