import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*; import org.xml.sax.*; import org.xml.sax.helpers.*; import Acme.JPM.Encoders.GifEncoder; import javax.xml.parsers.*; public class Displayxml extends DefaultHandler implements ActionListener { String nomecomando; int nr = 0,nsm=0; JPanel border=new JPanel(new BorderLayout()); JFrame frame = new JFrame ("Bad strips display"); Display disegno = new Display(); JScrollPane base; JButton tasto = new JButton("salva come gif"); static Displayxml lx; int istrip[]=new int[1000]; Image o; Graphics og; public Displayxml(){ lx = this; } public static void main(String argv[]) { if (argv.length != 1) { System.err.println("Usage: cmd filename"); System.exit(1); } // Use an instance of ourselves as the SAX event handler DefaultHandler handler = new Displayxml(); // Use the default (non-validating) parser SAXParserFactory factory = SAXParserFactory.newInstance(); try { // Set up output stream out = new OutputStreamWriter(System.out, "UTF8"); lx.border.setPreferredSize( new Dimension(400,400)); lx.frame.setContentPane(lx.border); lx.disegno.setPreferredSize( new Dimension(768,800)); lx.base=new JScrollPane(lx.disegno, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); lx.base.setBackground(Color.white); lx.border.add(lx.base, BorderLayout.CENTER); lx.border.add(lx.tasto, BorderLayout.NORTH); lx.tasto.addActionListener(lx); lx.frame.pack(); lx.frame.show(); // Parse the input SAXParser saxParser = factory.newSAXParser(); saxParser.parse( new File(argv[0]), handler); } catch (Throwable t) { t.printStackTrace(); } // System.exit(0); } static private Writer out; public void actionPerformed(ActionEvent e){ File outFile=new File("prova2.gif"); try{ DataOutputStream dos=new DataOutputStream(new FileOutputStream(outFile)); GifEncoder encoder = new GifEncoder(lx.o, dos); encoder.encode(); dos.close(); } catch (Exception ee){ System.out.println(ee.toString()); } } public void startDocument() throws SAXException { System.out.println("Start Document"); } public void endDocument() throws SAXException { System.out.println("Numero sensori = "+nr); } public void startElement(String namespaceURI, String lName, // local name String qName, // qualified name Attributes attrs) throws SAXException { String name = lName; if ("".equals(name)) name = qName; nomecomando = name; if(nomecomando.equals("row")){System.out.print(nr+" "); if(nsm==0)System.out.println(nsm+" "); else {System.out.print(nsm+" "); for (int is=0;is