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