Mega Code Archive

 
Categories / Java / XML
 

XML User Interface

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>  *   *   */