BXML的等效Java代码

BXML的等效Java代码,java,apache-pivot,Java,Apache Pivot,我试图理解ApachePivot如何从BXML文件中的定义构建GUI。我想确保我了解涉及的步骤以及在这些步骤中自动完成的操作。为此,我尝试将非常简单的GUI的BXML定义转换为纯Java。但是,当遵循中描述的步骤时,布局似乎不是以相同的方式完成的(或者根本不是) 这是BXML文件和加载该文件的附带类: example.bxml: 如果没有BXML,我需要在类中更改什么才能获得与BXML文件相同的结果?而不是调用frame.add(textArea),我必须使用frame.setContent(

我试图理解ApachePivot如何从BXML文件中的定义构建GUI。我想确保我了解涉及的步骤以及在这些步骤中自动完成的操作。为此,我尝试将非常简单的GUI的BXML定义转换为纯Java。但是,当遵循中描述的步骤时,布局似乎不是以相同的方式完成的(或者根本不是)

这是BXML文件和加载该文件的附带类:

example.bxml:


如果没有BXML,我需要在类
中更改什么才能获得与BXML文件相同的结果?

而不是调用
frame.add(textArea)
,我必须使用
frame.setContent(textArea)
文本区域
添加到
框架
。加载BXML文件时调用此方法,因为
窗口
类用
@DefaultProperty(“content”)
注释:

因此,
BXMLSerializer
正在为BXML文件中的
元素的子元素调用
setContent()

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

<Frame xmlns="org.apache.pivot.wtk">
    <TextArea text="Hello World" />
</Frame>
public final class WithBxml extends Application.Adapter {
    @Override
    public void startup(Display display, Map<String, String> properties) throws Exception {
        Frame frame = (Frame) new BXMLSerializer().readObject(WithBxml.class, "example.bxml");

        frame.open(display);
    }

    public static void main(String[] args) {
        DesktopApplicationContext.main(WithBxml.class, args);
    }
}
public final class WithoutBxml extends Application.Adapter {
    @Override
    public void startup(Display display, Map<String, String> properties) throws Exception {
        TextArea textArea = new TextArea();
        textArea.setText("Hello World");

        Frame frame = new Frame();
        frame.add(textArea);
        frame.open(display);
    }

    public static void main(String[] args) {
        DesktopApplicationContext.main(WithoutBxml.class, args);
    }
}
@DefaultProperty("content")
public class Window extends Container {
    ...
}