/***** Code de MesExemples.com *******/ import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.FileInputStream;import javax.swing.JButton;import javax.swing.JComponent;import javax.swing.JFrame;import javax.swing.JPanel;import org.xml.sax.Attributes;import org.xml.sax.InputSource;import org.xml.sax.helpers.DefaultHandler;import com.sun.org.apache.xerces.internal.parsers.SAXParser;public class SimpleApp3 implements ActionListener { public static void main(String args[]) { JFrame frame = new JFrame("SimpleApp Demo"); frame.setSize(400, 400); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); new SimpleApp3(frame); } public SimpleApp3(JFrame frame) { frame.getContentPane().setLayout(new BorderLayout()); XMLComponent xmlComponent = new XMLComponent(); frame.getContentPane().add("Center", xmlComponent.build("ui.xml")); frame.setVisible(true); } public void actionPerformed(ActionEvent ev) { System.out.println("You clicked " + ev.getActionCommand()); }}class XMLComponent extends DefaultHandler { private boolean containerActive = false; private JPanel primaryContainer = new JPanel(); private SAXParser parser = new SAXParser(); public XMLComponent() { super(); } public JComponent build(String xmlDocument) { parser.setContentHandler(this); try { parser.parse(new InputSource(new FileInputStream(xmlDocument))); } catch (Exception ex) { System.out.println(ex); } return primaryContainer; } public void startElement(String namespaceURI, String name, String qName, Attributes atts) { if (name.equals("button")) primaryContainer.add(new JButton(atts.getValue("label"))); }}// ui.xml/* * <?xml version="1.0"?> <ui> <button label="XML"/> <button label="is"/> <button * label="great"/> </ui> * * */ |
Code testé avec le fichier XML Suivant
<?xml version="1.0" encoding="windows-1252"?> <!-- Edited by MesEXemple.com --> <note> <to>Sakoba</to> <from>Adams</from> <heading>Rappel</heading> <body>Ne m'oubliez pas ce week-end!</body> </note> |
Cet article Java: Créer une interface graphique basée sur un document XML* est apparu en premier sur .