如何启用预定项目的下拉列表以添加到 SceneBuilder 中的自定义控件?

Posted

技术标签:

【中文标题】如何启用预定项目的下拉列表以添加到 SceneBuilder 中的自定义控件?【英文标题】:How to enable a dropdown list of predetermined items to add to a custom control in SceneBuilder? 【发布时间】:2018-03-15 07:14:04 【问题描述】:

DialogPaneSceneBuilder 中有这个实现:

您可以在窗格中添加按钮列表。

我希望为我在场景构建器中的自定义控件执行此操作。我在DialogPane 的构造函数中找不到任何明显的东西可以使它工作。

这样做有可能吗?

private final ObservableList<ButtonType> buttons = FXCollections.observableArrayList();

public DialogPane() 
    getStyleClass().add("dialog-pane");

    headerTextPanel = new GridPane();
    getChildren().add(headerTextPanel);

    graphicContainer = new StackPane();

    contentLabel = createContentLabel("");
    getChildren().add(contentLabel);

    buttonBar = createButtonBar();
    if (buttonBar != null) 
        getChildren().add(buttonBar);
    
    buttons.addListener((ListChangeListener<ButtonType>) c -> 
        while (c.next()) 
            if (c.wasRemoved()) 
                for (ButtonType cmd : c.getRemoved()) 
                    buttonNodes.remove(cmd);
                
            
            if (c.wasAdded()) 
                for (ButtonType cmd : c.getAddedSubList()) 
                    if (! buttonNodes.containsKey(cmd)) 
                        buttonNodes.put(cmd, createButton(cmd));
                    
                
            
        
    );

【问题讨论】:

有趣... 了解其工作原理的地方可能是Scene Builder 的源代码。您需要弄清楚它是否只是将DialogPane 中的此属性视为特殊情况(在这种情况下您可能不走运),或者它是否寻找特定的东西(具有某些常量的类型的只读属性定义为相同的类型,或其他东西......)。 【参考方案1】:

您应该尝试点击右上角设置图标上的库面板,然后点击 Costum Library 文件夹 -> 在资源管理器中显示。

有关详细信息,请参阅this tutorial。

【讨论】:

这个控件不是自定义的。

以上是关于如何启用预定项目的下拉列表以添加到 SceneBuilder 中的自定义控件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 plist 中添加预定义值?

启用 scrollX 时,包含按钮下拉列表的行会导致垂直滚动

如何以编程方式在 select2 多选下拉列表中添加其他选择而不会丢失现有的选定项目

如何传递从 django 表单操作 url 的下拉列表中选择的项目的 ID?

从 Json 中选择值以添加到下拉列表

如何在我的数据表 ajax 服务器端数据中添加下拉列表以使用数据表列显示到表中