目前,我正在将Swing应用程序的首选项面板迁移到JavaFX。应用程序首先读取需要从xml文件构建的内容。然后,应用程序使用该信息创建大量JComponents和关联的JLabel并将其附加到面板以及一些分隔符,如下所示:
layout = new FormLayout(description, "");
builder = new DefaultFormBuilder(bottomLayout);
// In some loop
propertyControlImpl.layout(builder);
public void layout(final DefaultFormBuilder builder) {
final JLabel label = builder.append(TextUtils.getOptionalText(getLabel()), component);
// set the text property of label, etc
}
public void layout(final DefaultFormBuilder builder) {
builder.appendSeparator(TextUtils.getOptionalText(getLabel()));
}
将此转换为JavaFX的最佳方法是什么?是否有为此制作的开源JavaFX库?如果没有,我计划使用stacked TitlePanes和hbox的组合来放置各种控件(组件)。
这是我想要生成的模拟(使用JavaFX SceneBuilder创建)。我尚未完美地对齐所有内容,但我希望所有标签都正确对齐并占据最长标签的空间。所有要在标签右侧左对齐的组件(就像DefaultFormBuilder如何布置一样):
答案 0 :(得分:4)
我所见到的最接近你要求的是FXForm2。它基于具有JavaFX Bean属性的POJO生成表单。也许不是最优雅或最完美的你想要的东西,但可能会帮助你。
答案 1 :(得分:1)
虽然FXForm2似乎是一种选择,但我最终使用了ControlsFX's Property Sheet control。属性表的CATEGORY模式几乎就是我想要的。它包括一个内置的搜索栏,我发现它非常有用。