Java/XML/XML UI

Материал из Java эксперт
Перейти к: навигация, поиск

XML User Interface

   <source lang="java">

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