如何从代码中混合JFXNodeList

时间:2018-04-09 13:33:18

标签: javafx jfoenix

我有一个JFXNodeList

<JFXNodesList fx:id="algorithmList" layoutX="285.0" layoutY="215.0" prefHeight="1.0" prefWidth="10.0" />

如果用户单击一个按钮,如何从我的控制器java代码中关闭(混合JFXNodeList)?

环境: JavaFX,Java 8,jfoenix:8.0.3

1 个答案:

答案 0 :(得分:0)

要关闭(折叠)JFXNodeList,您可以使用此方法:

nodesList.animateList(false);

完整示例:

// src / toumi_jfoenix / Controller.java:

package toumi_jfoenix;

import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXNodesList;
import javafx.fxml.FXML;
import javafx.scene.control.Tooltip;

public class Controller {
    @FXML
    public JFXNodesList nodesList;

    @FXML
    private void initialize() {
        JFXButton btnMenu = new JFXButton("Menu");
        JFXButton btnOption1 = new JFXButton("Option 1");
        JFXButton btnOption2 = new JFXButton("Option 2");

        JFXButton btnCollapse = new JFXButton("<<");
        btnCollapse.setTooltip(new Tooltip("Collapse menu"));
        btnCollapse.setOnAction(e->nodesList.animateList(false));

        nodesList.addAnimatedNode(btnMenu);
        nodesList.addAnimatedNode(btnOption1);
        nodesList.addAnimatedNode(btnOption2);
        nodesList.addAnimatedNode(btnCollapse);
    }
}

// src / toumi_jfoenix / sample.fxml:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.Pane?>
<?import com.jfoenix.controls.JFXNodesList?>

<Pane xmlns="http://javafx.com/javafx"
      xmlns:fx="http://javafx.com/fxml"
      fx:controller="toumi_jfoenix.Controller">

    <JFXNodesList fx:id="nodesList" layoutX="20.0" layoutY="10.0" rotate="-90" spacing="50"/>

</Pane>

// src / toumi_jfoenix / Main.java:

package toumi_jfoenix;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Main extends Application {

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

    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
        Scene scene = new Scene(root, 430, 200);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}