gpt4 book ai didi

java - 使用 XML 文件在 swing 中构建 GUI

转载 作者:行者123 更新时间:2023-12-02 02:16:05 26 4
gpt4 key购买 nike

我正在寻找一种使用 XML 和 swing 构建 UI 的方法。我有一个 XML 代码,正在寻找一种使用 swing 从中获取 UI 的方法。我尝试了下面的 Java 代码,但我不确定这是否会帮助我显示框架和其他组件。

请帮忙。

下面是 XML 代码,其中包含 JFrame 和我想要在 UI 中使用的其他内容。我想从 java 代码调用这个文件,以便我可以显示我在 XML 中编写的所有内容。

<?xml version="1.0" encoding="UTF-8"?> 
<java version="1.8.0_161" class="java.beans.XMLDecoder">
<object class="javax.swing.JFrame">
<void property="size">
<object class="java.awt.Dimension">
<int>208</int>
<int>87</int>
</object>
</void>
<void property="contentPane">
<void method="add">
<object id="JLabel0" class="javax.swing.JLabel">
<void property="text">
<string>Hello1</string>
</void>
</object>
</void>
<void method="add">
<object id="JButton0" class="javax.swing.JButton">
<string>Hello2</string>
</object>
</void>
<void property="layout">
<object class="java.awt.BorderLayout">
<void method="addLayoutComponent">
<object idref="JButton0"/>
<string>South</string>
</void>
<void method="addLayoutComponent">
<object idref="JLabel0"/>
<string>Center</string>
</void>
</object>
</void>
</void>
<void property="name">
<string>frame0</string>
</void>
<void property="title">
<string>Save/Load View</string>
</void>
<void property="visible">
<boolean>true</boolean>
</void>
</object>
</java>

下面是Java代码:

 import javax.swing.*;
import java.io.File;
import org.w3c.dom.Document;
import org.w3c.dom.*;
import java.awt.*;
import java.awt.event.*;


import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;

public class MasterScreen{

public static void main (String argv []){
try {
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse (new File("MasterXML.xml"));
System.out.println("Siri");
doc.getDocumentElement ().normalize ();
System.out.println("Siriri");
}
catch (SAXParseException err) {
System.out.println ("** Parsing error" + ", line " + err.getLineNumber () + ", uri " + err.getSystemId ());
System.out.println(" " + err.getMessage ());

}catch (SAXException e) {
Exception x = e.getException ();
((x == null) ? e : x).printStackTrace ();

}catch (Throwable t) {
t.printStackTrace ();
}
}
}

最佳答案

您的 XML 文件显然是使用 java.beans.XMLEncoderJFrame 对象生成的。 .
因此,解码此 XML 文件以生成原始对象非常简单。只需使用 java.beans.XMLDecoder像这样:

public class Main {

public static void main(String[] args) throws IOException {
XMLDecoder xmlDecoder = new XMLDecoder(new FileInputStream("MasterXML.xml"));
Object frame = xmlDecoder.readObject();
xmlDecoder.close();
}
}

您无需像使用 DocumentBuilder 那样费心处理低级 XML 解析 -

运行上述代码时,此JFrame将显示:

enter image description here

关于java - 使用 XML 文件在 swing 中构建 GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49276419/

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