Hallo zusammen,
ich bin mir ziemlich sicher, dass ich eine alberne Frage stelle, aber ich komme an diese stelle überhaupt nicht weiter.
Durch meine XML Datei möchte ich den text in JButton ausgeben.
Bitte siehe Anhang: Mein Gui sieht wie ComponentModel.png aus aber soll es wir das Hauptfenster.png
Ich kann meine Childelemente nicht richtig aufrufen, leider weiss ich überhaupt nicht was ich falsch mache.
Es wäre sehr nett wenn jemand mir weiter hilfen kann...
Danke im voraus.
[XML]<?xml version="1.0" encoding="UTF-8"?>
<OptimISEGuiModel>
<MainButton>
<ChartName>LOC</ChartName>
</MainButton>
<MainButton>
<ChartName>Sir Statistics</ChartName>
</MainButton>
<MainButton>
<ChartName>Test Statistics</ChartName>
</MainButton>
<MainButton>
<ChartName>Issue</ChartName>
</MainButton>
<MainButton>
<ChartName>Rappidd</ChartName>
</MainButton>
</OptimISEGuiModel>
[/XML]
ich bin mir ziemlich sicher, dass ich eine alberne Frage stelle, aber ich komme an diese stelle überhaupt nicht weiter.
Durch meine XML Datei möchte ich den text in JButton ausgeben.
Bitte siehe Anhang: Mein Gui sieht wie ComponentModel.png aus aber soll es wir das Hauptfenster.png
Ich kann meine Childelemente nicht richtig aufrufen, leider weiss ich überhaupt nicht was ich falsch mache.
Es wäre sehr nett wenn jemand mir weiter hilfen kann...
Danke im voraus.
Java:
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class getComponentPanel extends JFrame implements ActionListener {
private JPanel componentPanel;
Document dom;
ArrayList MainButton;
// constructor
public getComponentPanel() throws Exception {
// create a list to hold the MainButton objects
MainButton = new ArrayList();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(new Dimension(250, 270));
setTitle("OptimISE Component Model");
pack();
setVisible(true);
getContentPane().setLayout(
new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
getContentPane().add(getComponentPanel(), getLayout());
componentPanel.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 10));
componentPanel.setBorder(BorderFactory.createTitledBorder(null, "",
TitledBorder.DEFAULT_JUSTIFICATION,
TitledBorder.DEFAULT_POSITION,
new Font("Dialog", Font.BOLD, 12), new Color(51, 51, 51)));
}
private Component getComponentPanel() throws Exception {
File file = new File("OptimISEGuiModel.xml");
// get the Factory
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
// get the root elememt
Document doc = db.parse(file);
doc.getDocumentElement().normalize();
System.out.println("Root element "
+ doc.getDocumentElement().getNodeName());
// ---- Loop through the list of main nodes ----
NodeList nl = doc.getElementsByTagName("MainButton");
// Loop for Element
for (int s = 0; s < nl.getLength(); s++) {
// Nodes
Node fstNode = nl.item(s);
if (fstNode.getNodeType() == Node.ELEMENT_NODE) {
Element fstElmnt = (Element) fstNode;
// Ich hätte gerne alle Childelements hier ausgegeben.
NodeList fstNmElmntLst = fstElmnt
.getElementsByTagName("ChartName");
Element fstNmElmnt = (Element) fstNmElmntLst.item(0);
//
NodeList nodes = fstNmElmnt.getChildNodes();
String NodeName = fstElmnt.getNodeName();
System.out.println(NodeName);
// Buttons
for (int a = 0; a < nl.getLength(); a++) {
JButton button = new JButton(NodeName);
button.setPreferredSize(new Dimension(180, 30));
button.setActionCommand(NodeName);
componentPanel.add(button);
button.addActionListener(this);
}
}
}
return componentPanel;
}
public void actionPerformed(ActionEvent e) {
}
}
Java:
public class XMLReader {
public static void main(String argv[]) throws Exception {
new getComponentPanel();
}
}
[XML]<?xml version="1.0" encoding="UTF-8"?>
<OptimISEGuiModel>
<MainButton>
<ChartName>LOC</ChartName>
</MainButton>
<MainButton>
<ChartName>Sir Statistics</ChartName>
</MainButton>
<MainButton>
<ChartName>Test Statistics</ChartName>
</MainButton>
<MainButton>
<ChartName>Issue</ChartName>
</MainButton>
<MainButton>
<ChartName>Rappidd</ChartName>
</MainButton>
</OptimISEGuiModel>
[/XML]