applet getParameter NumberFormatException: null

Permalänk

applet getParameter NumberFormatException: null

Hej jag har en problem med applet
Min IDE Netbeans 8.1 vill aldrig köra program som implementerar och använder metoden getParameter.(
Om jag byter getParameter till JOptionPane.showInputDialog, program fungerar men jag kan inte visa det via HTML på nätet. Därför jag försöker att använda getParameter metod men det metod alltid visar NumberFormatException : null .

Jag kan visa er exempel

import java.awt.*; public class FilmVisare extends Canvas implements Runnable{ private Thread aktivitet; private Image[]filmrutor; private int intervall; private int nr; public FilmVisare(Image [] filmrutor){ this(filmrutor,500); } public FilmVisare(Image[] filmrutor, int intervall){ this.filmrutor = filmrutor; this.intervall = intervall; //vänta tills alla filmrutorna är inladdade MediaTracker mt = new MediaTracker(this); for (int i=0; i<filmrutor.length;i++) mt.addImage(filmrutor[i], i); try{ mt.waitForAll(); } catch(InterruptedException e){ e.getStackTrace(); } setSize(filmrutor[0].getWidth(this), filmrutor[0].getHeight(this)); } public void run(){ while(XThread.delay(intervall)){ repaint(); nr = (nr+1)%filmrutor.length; } } public void update(Graphics g){ paint(g); } public void paint(Graphics g){ g.drawImage(filmrutor[nr], 0, 0, this); } public void start(){ if(aktivitet == null){ aktivitet = new Thread(this); aktivitet.start(); } } public void stop(){ if(aktivitet != null){ aktivitet.interrupt(); aktivitet=null; } } }

import java.awt.*; import java.applet.*; public class Animering extends Applet{ private FilmVisare f; public void init(){ int n = Integer.parseInt(getParameter("antal")); String filnamn = getParameter("filnamn"); Image[] bilder = new Image[n]; for(int i=0; i<n; i++) bilder[i] = getImage(getCodeBase(), filnamn+(i+1)+".gif"); f = new FilmVisare(bilder); add(f); } public void start(){ f.start(); } public void stop(){ f.stop(); } }

Både java fil ligger i C:\Users\(Mitt namn)\NetBeans\Book_Examples\src\Exempel_Kap15
class fil ligger i C:\Users\(Mitt namn)\NetBeans\Book_Examples\build\classes\Exempel_Kap15

Jag har HTML fil på det också

<html> <head> <title> Animering </title> </head> <body> <applet code = "Animering.class" width="300" height="150"> <param name ="antal" value="10"> <param name="filnamn" value="hund"> </applet> </body> </html>

html filens namn är Animering.html och det ligger i samma map där class filerna ligger.
Jag har provat att ändra applet code till

<object codetype="application/java" classid="java:Animering.class" width="300" height="150"> <param name ="antal" value="10"> <param name="filnamn" value="hund"> </object>

Men problem är fortfarande olöst. java.lang.NumberFormatException: null på getParameter metod. Att visa det på nätet också fungerar inte.
Vad är det problem?? Min lärobok har massa applet uppgifter och jag kan göra inget av dem och visa det på nätet, på grund av NumberFormatException på metoden getParameter

Permalänk
Medlem

Får du samma fel om du kör appletviewer applet.html (eller vad din html fil nu har för namn).

Jag skulle nog skippa det där att försöka få det att fungera på nätet eller i webbläsare eftersom det numera är så mycket restriktioner på java applets av säkerhetsskäl.

Om du kör med appletviewer från kommandoprompten och lägger till så att du skriver ut parametrarna så ska du se dem på kommandoprompten, alltså lägg till direkt efter båda getParameter() anropen:

System.out.println(filnamn);
System.out.println(n);

Jag testade din kod och hade inga problem med appletviewer.

Permalänk
Skrivet av kyuw:

Får du samma fel om du kör appletviewer applet.html (eller vad din html fil nu har för namn).

Jag skulle nog skippa det där att försöka få det att fungera på nätet eller i webbläsare eftersom det numera är så mycket restriktioner på java applets av säkerhetsskäl.

Om du kör med appletviewer från kommandoprompten och lägger till så att du skriver ut parametrarna så ska du se dem på kommandoprompten, alltså lägg till direkt efter båda getParameter() anropen:

System.out.println(filnamn);
System.out.println(n);

Jag testade din kod och hade inga problem med appletviewer.

Jag har provat med

C:\Users\(Mitt namn)\NetBeans\Book_Examples\build\classes\> appletviewer Animering.html

Men det visar 'appletviewer' is not recognized as an ..... bla bla bla javac också fungerar inte

Permalänk
Skrivet av kyuw:

Får du samma fel om du kör appletviewer applet.html (eller vad din html fil nu har för namn).

Jag skulle nog skippa det där att försöka få det att fungera på nätet eller i webbläsare eftersom det numera är så mycket restriktioner på java applets av säkerhetsskäl.

Om du kör med appletviewer från kommandoprompten och lägger till så att du skriver ut parametrarna så ska du se dem på kommandoprompten, alltså lägg till direkt efter båda getParameter() anropen:

System.out.println(filnamn);
System.out.println(n);

Jag testade din kod och hade inga problem med appletviewer.

När jag öppnar appletinformation fönster visar

-- ingen appletinformation --

-- ingen parameterinformation -

Jag vet att det händer på grund av java kunde inte läsa värde från HTML men fattar inte varför??

Permalänk
Medlem

Om du nu fick igång appletviewer så borde det fungera. Som sagt lägg till System.out.println och titta på kommandoprompten.

Det är ganska omöjligt att den inte läser korrekt, jag har testat din exakta kod.

Om du inte fick igång appletviewer måste du lägga till sökvägen till bin katalogen där java är installerad till path i systemet, det finns massor av artiklar på nätet om det.

Permalänk
Skrivet av kyuw:

Om du nu fick igång appletviewer så borde det fungera. Som sagt lägg till System.out.println och titta på kommandoprompten.

Det är ganska omöjligt att den inte läser korrekt, jag har testat din exakta kod.

Om du inte fick igång appletviewer måste du lägga till sökvägen till bin katalogen där java är installerad till path i systemet, det finns massor av artiklar på nätet om det.

Nej nej jag fick inte igång. Jag bara testade det i IDE.

Jag har appletviewer.exe
C:\Program Files\Java\jdk1.8.0_101\bin
Men, när jag startar det, det stängas automatiskt direkt. Jag kan göra ingenting med det.

Jag har
appletviewer
C:\Program Files\Java\jdk1.8.0_73\bin
här också, det också vill inte att fungera.

därför jag försökte att jobba med cmd och resultat är som ni vet.

Permalänk
Medlem

Du får lägga till den sökvägen C:\Program Files\Java\jdk1.8.0_73\bin till PATH i systemet så alla verktyg blir tillgängliga på komandoprompten.

https://docs.oracle.com/javase/tutorial/essential/environment...

Du ska sedan inte klicka direkt på den, du ska öppna en kommandoprompt först, gå till katalogen där ditt projekt finns och skriva

>appletviewer Animering.html

Permalänk
Medlem
Skrivet av ProgrammeringElev:

Jag har provat med

C:\Users\(Mitt namn)\NetBeans\Book_Examples\build\classes\> appletviewer Animering.html

Men det visar 'appletviewer' is not recognized as an ..... bla bla bla javac också fungerar inte

Skrivet av ProgrammeringElev:

Nej nej jag fick inte igång. Jag bara testade det i IDE.

Jag har appletviewer.exe
C:\Program Files\Java\jdk1.8.0_101\bin
Men, när jag startar det, det stängas automatiskt direkt. Jag kan göra ingenting med det.

Jag har
appletviewer
C:\Program Files\Java\jdk1.8.0_73\bin
här också, det också vill inte att fungera.

därför jag försökte att jobba med cmd och resultat är som ni vet.

För att "appletviewer Animering.html" ska kunna fungera måste du ha C:\Program Files\Java\jdk1.8.0_101\bin satt i miljövariabeln PATH.

Annars kan du testa att ställa dig där (C:\Program Files\Java\jdk1.8.0_101\bin) och köra "appletviewer C:\Users\(Mitt namn)\NetBeans\Book_Examples\build\classes\Animation.html"

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Skrivet av kyuw:

Du får lägga till den sökvägen C:\Program Files\Java\jdk1.8.0_73\bin till PATH i systemet så alla verktyg blir tillgängliga på komandoprompten.

https://docs.oracle.com/javase/tutorial/essential/environment...

Du ska sedan inte klicka direkt på den, du ska öppna en kommandoprompt först, gå till katalogen där ditt projekt finns och skriva

>appletviewer Animering.html

Tack!! Nu jag kan se fönster via appletviewer!! Det är första gången i mitt liv
Men cmd visar en error till
när man skriver appletviewer Animering.html , cmd visar NoClassDefFoundError

C:\Users\(Mitt Namn)\NetBeans\Book_Examples\build\classes\Exempel_Kap15>appletviewer Animering.html java.lang.NoClassDefFoundError: Animering (wrong name: Exempel_Kap15/Animering) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:217) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:152) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:626) at sun.applet.AppletPanel.createApplet(AppletPanel.java:799) at sun.applet.AppletPanel.runLoader(AppletPanel.java:728) at sun.applet.AppletPanel.run(AppletPanel.java:378) at java.lang.Thread.run(Thread.java:745)

ska java fil ligga på samma map med html fil?

Permalänk
Skrivet av Teknocide:

För att "appletviewer Animering.html" ska kunna fungera måste du ha C:\Program Files\Java\jdk1.8.0_101\bin satt i miljövariabeln PATH.

Annars kan du testa att ställa dig där (C:\Program Files\Java\jdk1.8.0_101\bin) och köra "appletviewer C:\Users\(Mitt namn)\NetBeans\Book_Examples\build\classes\Animation.html"

Tack!! Nu jag kan se fönster via appletviewer!! Det är första gången i mitt liv
Men cmd visar en error till
när man skriver appletviewer Animering.html , cmd visar NoClassDefFoundError

C:\Users\(Mitt Namn)\NetBeans\Book_Examples\build\classes\Exempel_Kap15>appletviewer Animering.html java.lang.NoClassDefFoundError: Animering (wrong name: Exempel_Kap15/Animering) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:217) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:152) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:626) at sun.applet.AppletPanel.createApplet(AppletPanel.java:799) at sun.applet.AppletPanel.runLoader(AppletPanel.java:728) at sun.applet.AppletPanel.run(AppletPanel.java:378) at java.lang.Thread.run(Thread.java:745)

ska java fil ligga på samma map med html fil?

Förlåt för mycket citera inlägg(glömde att där finns citera flera, och kan inte radera inlägget)

Permalänk
Medlem

Antingen kopierar du den kompilerade klass filen till den katalogen från den katalog som Netbeans har lagt den i eller kopierar html filen dit klass filen finns eller java filen och kör javac på kommandoprompten för att kompilera.

Permalänk
Skrivet av kyuw:

Antingen kopierar du den kompilerade klass filen till den katalogen från den katalog som Netbeans har lagt den i eller kopierar html filen dit klass filen finns eller java filen och kör javac på kommandoprompten för att kompilera.

Jag vet inte om jag har fattat rätt men det fortfarande fungerar inte hos mig.

C:\Users\(Mitt Namn)\NetBeans\Book_Examples\src\Exempel_Kap15>javac Animering.java FilmVisare.java XThread.java C:\Users\Ho Seop\NetBeans\Book_Examples\src\Exempel_Kap15>appletviewer "C:\Users\Ho Seop\NetBeans\Book_Examples\build\classes\Exempel_Kap15\Animering.html"

och jag får samma error som ovan.
Applet fönter visar att applet är inte initierad.
Jag har kollat på miljövariabler och path sätts på den adress där appletviewer.exe ligger
classpath är . Kanske måste byta classpath?

Permalänk
Medlem

Allt ska ligga i samma katalog och du kör appletviewer Animering.html

Animering.html
Animering.class
FilmVisare.class
XThread.class
Hund1.gif
Hund2.gif
Hund3.gif
....

Permalänk
Skrivet av kyuw:

Okej, jag har inga fler förslag tyvärr.

Men dina svar hjälpte mig mycket Nu jag vet hur ska jag göra om man behöver appletviewer

Super tack!