gpt4 book ai didi

java - SettingsPane 中的属性类型与其编辑器之间的映射是什么?

转载 作者:行者123 更新时间:2023-11-30 06:30:57 35 4
gpt4 key购买 nike

SettingsPane可以自动选择属性编辑器。在它的 doecs 中说

The SettingsPane control is designed to make it really easy for developers to present to end users a list of options that can be modified, using proper built-in editors according the type of those options.

我在这方面有两个问题:

  1. 为每种属性类型选择哪个组件?我看到 boolean 值有左右切换,数字有一个文本字段,ObjectProperty<Color>有一个颜色选择器(在桌面上会弹出 - 我不知道在移动设备上会发生什么?)。其余的映射是什么?

  2. 当我尝试拥有枚举属性时:ObjectProperty<EnumType>我收到没有渲染器的错误。我认为组合框将是从已知数量的枚举常量中进行选择的默认设置,不是吗?我知道我可以自己通过编辑器工厂实现这一点,但无论如何我想问一下这个问题,如果我没有犯错误的话,也许可以作为一个建议。

编辑

我再次查看自定义编辑器的SettingPane示例:http://docs.gluonhq.com/charm/javadoc/4.3.7/com/gluonhq/charm/glisten/control/SettingsPane.html我注意到两个问题:

  1. 在复选框编辑器的示例代码中请参阅我的评论:

    public class CheckBoxEditor implements OptionEditor<Boolean> {
    private final CheckBox checkBox;
    public CheckBoxEditor(Option<Boolean> option) {
    this.checkBox = new CheckBox();
    valueProperty().bindBidirectional(option.valueProperty());
    }} // only 1 }
    @Override public Node getEditor() { return checkBox; }
    @Override public final Property<Boolean> valueProperty() { return checkBox.selectedProperty(); }
    @Override public Boolean getValue() { return checkBox.isSelected(); }
    @Override public void setValue(Boolean value) { checkBox.setSelected(value); }
    // missing }
  2. 在使用示例中:

    final Option<BooleanProperty> dateOption = new DefaultOption(MaterialDesignIcon.DATE_RANGE.graphic(),
    "Show Date", "Show the date", "Category", settings.showDateProperty(), true,
    option -> new CheckBoxEditor((Option<Boolean>) option));

lambda 给我一个编译错误:

Type mismatch: cannot convert from CheckBoxEditor to OptionEditor<BooleanProperty>

option类型为Option<BooleanProperty> Actor 阵容为Option<Boolean> 。错误?

最佳答案

SettingsPane 的默认编辑器control是:

  • 字符串:TextField .
  • 数字(字节和字节、短整型和短整型、整型和整数、长整型和长整型、浮点型和浮点型、 double 型和 double 型、BigInteger、BigDecimal):TextFieldTextFormatter已应用。
  • boolean 值:ToggleButton .
  • 本地日期:DatePicker .
  • 颜色/油漆:ColorPicker .
  • 枚举:ComboBox .

您可以通过使用 SettingsPane::setOptionEditorFactory 设置您自己的工厂来覆盖此设置,但您必须提供所有必需的编辑器。

您还可以覆盖特定编辑器,或者可以为给定类型添加您自己的编辑器。

这是 Enum 的示例选项:

enum OS { WINDOWS, MAC, LINUX, OTHER }

ObjectProperty<OS> os = new SimpleObjectProperty<>(OS.MAC);

Option<OS> OSOption = new DefaultOption(MaterialDesignIcon.LAPTOP.graphic(), "Operative System",
"Set the preferred OS", "Operative System", os, true);

关于 JavaDoc,是的,这些是需要修复的拼写错误。我已经提交并发布了它。

关于运行示例,它按原样对我有用。请参阅上图,了解 WiFi 选项:

final BooleanProperty wifi = new SimpleBooleanProperty();
final Option<BooleanProperty> wifiOption = new DefaultOption(MaterialDesignIcon.WIFI.graphic(),
"WiFi", "Set Wifi or Wire", "Devices", wifi, true,
option -> new CheckBoxEditor((Option<Boolean>) option));

关于java - SettingsPane 中的属性类型与其编辑器之间的映射是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46143763/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com