首页 > 解决方案 > 如何在 Java FX 中创建可滚动的“下拉”复选框?

问题描述

我是 JavaFX 的新手,我正在尝试创建检查项目的“下拉列表”。我正在尝试使下拉菜单可滚动。我可以使用 ComboBox 轻松完成此操作(使用 setVisibleowCount(int)),但 ComboBox 仅允许在关闭对话之前选择 1 个项目,并且似乎不是要使用的正确对象。

我目前正在使用带有 CheckMenuItems 的菜单按钮。ListView 似乎很有用,但我不太确定如何集成它。如果有人可以提供帮助,那就太好了。谢谢。

当前状态

标签: javauser-interfacejavafxscrollbar

解决方案


由于您不能使用 CheckComboBox,我会看看 Accordion + TitledPane 是否适合您的工作。
这是一个例子:

public class Main extends Application {

    @Override
    public void start(Stage stage) throws Exception{
        VBox root = new VBox();
        root.getChildren().add(new Label("Select Number of Checkboxes you feel like clicking"));

        VBox vBox = new VBox();
        for (int i = 0; i < 5; i++)
            vBox.getChildren().add(new CheckBox("i:" + i));

        ScrollPane scrollPane = new ScrollPane(vBox);
        //Easily changeable Max Height
        scrollPane.setMaxHeight(10);

        // Create TitledPane.
        TitledPane titledPane = new TitledPane("Check Boxes", scrollPane);
        //Add to Accordion
        Accordion accordion = new Accordion(titledPane);
        //Add to root VBox
        root.getChildren().add(accordion);

        root.getChildren().add(new Label("Some Other Content"));

        stage  = new Stage();
        stage.setHeight(200);
        stage.setScene(new Scene(root));
        stage.setAlwaysOnTop(true);
        stage.show();
    }

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

}

推荐阅读