Aplet- problem z wczytaniem pliku xml

0

Witam

Mam problem taki jak w temacie.
Kod programu:

 
package projekt_java;
import java.io.File;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import java.util.List;
import java.net.*;

import java.awt.*;
import java.io.FileInputStream;
/**
 *
 * @author Darek
 */
public class prace_dyplomowe extends javax.swing.JApplet {

    /** Initializes the applet prace_dyplomowe */
    public static String temp;
    public static int j;
    public URL u;
    public SAXBuilder builder= new SAXBuilder();
    	public void  prace_dyplomowe(){
        try {
          u=new URL(getCodeBase(),"dane.xml");
        } catch (MalformedURLException ex) {
        } 
	}


   public void paint(Graphics g){

	try{

		// g.drawString("j3rnfo3",100,100);
              
         Document doc = builder.build(u.getFile() );
 	 	// g.drawString("4r3r3",200,200);

		 Element tematy_prac_dyplomowych = doc.getRootElement();
         List praca_dyplomowa = tematy_prac_dyplomowych.getChildren();
         for(int i=0;praca_dyplomowa.size()>i;i++) {
                Element temat=(Element)praca_dyplomowa.get(i);
                List dane_tematu=temat.getChildren();

                for(j=0;dane_tematu.size()>j;j++) {
                    Element dany_temat=(Element)dane_tematu.get(j);
                    temp=dany_temat.getText();
                   System.out.println(temp);
                }
            }
	}catch  (Exception e) {
        e.printStackTrace();
	}
}

Kompilacja przebiega bez błędów, ale w czasie wykonywania czepia sie linijki:

Document doc = builder.build(u.getFile() );

Dziekuje za wszelką pomoc w tym temacie.

0

A tak?
Document doc = builder.build(new FileInputStream(u.getFile()) );

0
Koziołek napisał(a)

A tak?
Document doc = builder.build(new FileInputStream(u.getFile()) );

Niestety nie pomogło. Pozdrawiam.

0

http://p2p.wrox.com/xml/7607-java-applet-can-read-xml-dom-display-text.html

swoją drogą co znaczy "czepia się". Jaki błąd.

0
Koziołek napisał(a)

http://p2p.wrox.com/xml/7607-java-applet-can-read-xml-dom-display-text.html

swoją drogą co znaczy "czepia się". Jaki błąd.

Pisze :

run:
java.lang.NullPointerException
        at projekt_java.prace_dyplomowe.paint(prace_dyplomowe.java:48)
        at sun.awt.RepaintArea.paintComponent(RepaintArea.java:248)
        at sun.awt.RepaintArea.paint(RepaintArea.java:224)
        at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:254)
        at java.awt.Component.dispatchEventImpl(Component.java:4060)
        at java.awt.Container.dispatchEventImpl(Container.java:2024)
        at java.awt.Component.dispatchEvent(Component.java:3819)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

0

to raczej nie jest błąd pobierania xmla. Pozwoliłem sobie dołożyć numerację linii. IMO, nie może pobrać listy.

0
Koziołek napisał(a)

to raczej nie jest błąd pobierania xmla. Pozwoliłem sobie dołożyć numerację linii. IMO, nie może pobrać listy.

Obawiam się, że to jednak wina ładowania się xmla, bo linia 48 to:

Document doc = builder.build(new FileInputStream(u.getFile()) );

Nie kopiowałem wszystkich początkowych komentarzy, dlatego doszło do pomyłki.

0

Ja myślę, że URL jest nulem. Warto dodać ex.printStackTrace() w obsłudze MalformedURLException. I nie musi być u.getFile, wystarczy samo u.

0
chodnik napisał(a)

Ja myślę, że URL jest nulem. Warto dodać ex.printStackTrace() w obsłudze MalformedURLException. I nie musi być u.getFile, wystarczy samo u.

Dodałem ex.printStackTrace() w obsłudze MalformedURLException lecz to nie zmieniło typu błędu. gdy jest samo u bez getFile() pojawia się błąd:

ava.lang.RuntimeException: Uncompilable source code
        at projekt_java.prace_dyplomowe.paint(prace_dyplomowe.java:38)
        at sun.awt.RepaintArea.paintComponent(RepaintArea.java:248)
        at sun.awt.RepaintArea.paint(RepaintArea.java:224)
        at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:254)
        at java.awt.Component.dispatchEventImpl(Component.java:4060)
        at java.awt.Container.dispatchEventImpl(Container.java:2024)
        at java.awt.Component.dispatchEvent(Component.java:3819)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

gdzie linia 38 to :

 Document doc = builder.build(new FileInputStream(u));

0

W jakim edytorze to piszesz? Technika poszła na przód i np. Eclipse pokazuje błędy w kodzie jeszcze przed kompilacją. Spróbuj, to może rozwiązać więcej problemów.
Przepraszam, że się niejasno wyraziłem, miałem na myśli:
Document doc = builder.build(u);
No ale tak czy inaczej proponuję używać jakiegoś IDE.

1 użytkowników online, w tym zalogowanych: 0, gości: 1