java - XML parsing and display in JTabbedPane -
i newbie java have parsed xml have display in respective jtabbedpane. have error on attribute object on start element method.
where going wrong?
import javax.swing.jscrollpane; import javax.swing.jtabbedpane; import javax.swing.imageicon; import javax.swing.jlabel; import javax.swing.jpanel; import javax.swing.jframe; import javax.swing.jtable; import javax.xml.parsers.saxparser; import javax.xml.parsers.saxparserfactory; import org.xml.sax.saxexception; import org.xml.sax.helpers.defaulthandler; import java.awt.*; import java.awt.event.*; import java.io.file; public class jtabbedpanedemo extends jpanel { /*static string[] nameatt= {" sv_machinedata "," mould_data "," core_1 "," core_2 "};*/ public jtabbedpanedemo() { // imageicon icon = new imageicon("java-swing-tutorial.jpg"); jtabbedpane jtbexample = new jtabbedpane(); // create first tab. jpanel jplinnerpanel1 = createinnerpanel(); jtbexample.addtab(" sv_machine_data ", jplinnerpanel1); jplinnerpanel1.setlayout(new borderlayout()); jtable table1 = new jtable(5,3); jscrollpane tablecontainer = new jscrollpane(table1); jplinnerpanel1.add(tablecontainer,borderlayout.center); //jtbexample.setselectedindex(0); // create second tab. jpanel jplinnerpanel2 = createinnerpanel(); jtbexample.addtab(" mould_data ", jplinnerpanel2); jplinnerpanel2.setlayout(new borderlayout()); jtable table2 = new jtable(5,3); jscrollpane tablecontainer1 = new jscrollpane(table2); jplinnerpanel2.add(tablecontainer1,borderlayout.center); // create third tab. jpanel jplinnerpanel3 = createinnerpanel(); jtbexample.addtab(" core_1 ", jplinnerpanel3); jplinnerpanel3.setlayout(new borderlayout()); jtable table3 = new jtable(5,3); jscrollpane tablecontainer3 = new jscrollpane(table3); jplinnerpanel3.add(tablecontainer3,borderlayout.center); // create fourth tab. jpanel jplinnerpanel4 = createinnerpanel(); jtbexample.addtab(" core_2 ", jplinnerpanel4); jplinnerpanel4.setlayout(new borderlayout()); jtable table4 = new jtable(5,3); jscrollpane tablecontainer4 = new jscrollpane(table4); jplinnerpanel4.add(tablecontainer4,borderlayout.center); // add tabbed pane panel. setlayout(new gridlayout(1, 1)); add(jtbexample); } protected jpanel createinnerpanel() { jpanel jplpanel = new jpanel(); jlabel jlbdisplay = new jlabel(); jlbdisplay.sethorizontalalignment(jlabel.center); jplpanel.setlayout(new gridlayout(1, 1)); jplpanel.add(jlbdisplay); return jplpanel; } public static void main(string[] args) { jframe frame = new jframe("tabbedpane source demo"); frame.addwindowlistener(new windowadapter() { public void windowclosing(windowevent e) { system.exit(0); } }); /*final jtabbedpanedemo xm = new jtabbedpanedemo();*/ try { saxparserfactory factory = saxparserfactory.newinstance(); saxparser saxparser = factory.newsaxparser(); defaulthandler handler = new defaulthandler() { boolean bfname = false; boolean blname = false; string nameattribute; public void startelement(string uri, string localname,string qname, attributes attributes) throws saxexception { if (qname.equalsignorecase("typ")) { bfname = true; } nameattribute = attributes.getvalue("name"); if (qname.equalsignorecase("value")){ blname = true; } } public void characters(char ch[], int start, int length) throws saxexception { if (bfname) { system.out.println("type : "+ new string(ch, start, length)); string vtype = new string(ch, start, length); /*xm.textarea.append(vtype+"\n");*/ bfname = false; } if (nameattribute != null && !nameattribute.equals("")) { system.out.println("name : " + nameattribute); /*vname+=nameattribute+ ", " +"\n"; xm.textarea_3.settext(vname); */} if (blname) { string vvalue = new string(ch, start, length); system.out.println("value:" + double.valueof(vvalue)); /*xm.textarea_1.append(double.valueof(vvalue)+"\n");*/ blname = false; } } }; saxparser.parse(new file("c:"path of xml file".xml"), handler); } catch (exception e) { e.printstacktrace(); } frame.getcontentpane().add(new jtabbedpanedemo(),borderlayout.center); frame.setsize(400, 500); frame.setvisible(true); } } below sample xml
<?xml version="1.0" encoding="utf-8"?> <hmi_data version="1.0" maschinennr.="xxxxxx" date="21-10-2009"> <vargroup name="vg_machinedata"> <variable name="mold1.sv_rmoldstroke"> <typ>real</typ> <value>6.000000e+02</value> </variable> <variable name="core1.sv_rmaxspeedfwd"> <typ>real</typ> <value>5.000000e+01</value> </variable> <variable name="core1.sv_rmaxspeedbwd"> <typ>real</typ> <value>5.000000e+01</value> </variable> <variable name="core1.sv_rmaxpressurefwd"> <typ>real</typ> <value>1.450000e+02</value> </variable> <variable name="core1.sv_rmaxpressurebwd"> <typ>real</typ> <value>1.450000e+02</value> </variable>
around 20 seconds javadcos suggests that:
import org.xml.sax.saxexception; import org.xml.sax.helpers.defaulthandler; should be:
import org.xml.sax.saxexception; import org.xml.sax.attributes; // import it! import org.xml.sax.helpers.defaulthandler;
Comments
Post a Comment