Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

JAVA, Netbeans geeft fout: start: applet not initialized

Pagina: 1
Acties:
  • 101 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo iedereen!

Ik heb met Netbeans een super kleine applet gemaakt, dit is mijn allereerste applet.
Dus het zou een domme vraag kunnen zijn maar ik hoop toch dat iemand hier antwoord op zou
kunnen geven. Ik heb in Netbeans de volgende applet gemaakt

//allereerste java applet tekst "First applet"

import java.applet.*;
import java.awt.*;

public class First_applet extends Applet

{
public void paint ( Graphics g )
{
g.drawString ("First applet" , 10, 20);

}
}

Ik kan deze gewoon compilen en krijg bericht BUILD SUCCESFULL
Wanneer ik op run druk (SHIFT F6) krijg je je applet daadwerkelijk te zien
Nu zou ik dus in mijn applet de tekst ''First applet'' moeten lezen.
Alleen komt dit er dus niet te staan slechts een leeg vak zonder tekst.
Met onder aan de foutmelding ''start: applet not initialized.''
Zou iemand mij hierbij kunnen helpen en weten wat ik over het hoofd heb gezien?

Jordy

  • Kixtart
  • Registratie: Mei 2004
  • Niet online

Kixtart

Destruction = Improvement

Ik heb ff snel op google gekeken en als het goed is moet er een init() in:
code:
1
2
3
4
public void init() {
                   // Initialize the applet
                   // Mogelijke init code
            }


http://www.faqs.org/docs/javap/c6/s1.html
http://java.sun.com/j2se/...applet/Applet.html#init()

En belangrijkste
www.google.com

Edit:

Ik heb nog een ander voorbeeld applet gezien zonder init en die zou moeten werken volgens de site, dus het kan aan iets anders liggen. Iig als je de foutmelding in google gebruikt levert dat veel hits op.

[ Voor 23% gewijzigd door Kixtart op 12-09-2007 10:15 ]

☻/
/▌
/ \


Verwijderd

Topicstarter
Heel raar want wanneer ik kijk op de URL die Kixtart neerzet, http://www.faqs.org/docs/javap/c6/s1.html.
Staan daar al kleine applets die het dus behoren te doen wanneer ik deze applets simpel kopier in een file met de goede naam natuurlijk. Dan krijg ik exact dezelfde foutmelding, (''start: applet not initialized.'') terwijl op die site het voorbeeldje ernaast staat hoe het eruit zou moeten zien.

  • Kixtart
  • Registratie: Mei 2004
  • Niet online

Kixtart

Destruction = Improvement

M'n edit was dus te laat :)
Zoeken op je foutmelding+netbeans bijvoorbeeld geeft hetzelfde probleem+mogelijke oplossingen:
http://www.google.com/sea...zed.+netbeans&btnG=Search

☻/
/▌
/ \


Verwijderd

Bij mij werkt de code gewoon, ik krijg First_applet op het scherm. maar ik krijg wel wat error's.

Er moet inderdaad wel eigenlijk een public void init(){} bij.

en het java-bestand heeft wel dezelfde naam als de klasse, namelijk First_applet??

Waarom er init bij moet:
Je maakt een klasse aan met de naam First_applet. Met extend Applet zeg je dat die klasse alles heeft wat de klasse Applet heeft, plus datgene wat je er nog bij zet of wat je er aan aanpast.

Bij het opstarten van een applet wordt eerst de init()-methode aangeroepen en dan de repaint();
De init() doet initialisatie (nu niet echt nodig). repaint() maakt het scherm leeg door update() aan te roepen en tekent het scherm vervolgens in door paint(Graphics g) aan te roepen.

De paint-methode heb je aangepast en daarom zou je nu die String op het scherm moeten zien. De init() doet echter ook nog wat. Die probeerd een niet-bestaand configuratiebestand uit te lezen.
init moet echter niets doen, dus pas je ook de init aan als volgt:
public void init(){}

P.S. het is eigenlijk een soort traditie om je eerste progsel in een nieuw te leren taal "Hello, world!" te laten printen ;)

[ Voor 66% gewijzigd door Verwijderd op 12-09-2007 10:29 ]


Verwijderd

Topicstarter
Ik heb er nu dit van gemaakt met de void init () {} ertussen:

//allereerste java applet tekst "First applet"

import java.applet.*;
import java.awt.*;

public class First_applet extends Applet


{
public void init(){}
public void paint ( Graphics g )
{
g.drawString ("First applet" , 10, 20);

}
}

Compilen gaat weer succesfull, maar bij run krijg ik nog dezelfde foutmelding:S

  • Kixtart
  • Registratie: Mei 2004
  • Niet online

Kixtart

Destruction = Improvement

Heb je al op google gezocht?
Volgens iemand kan het bijvoorbeeld aan een verkeerd geinstalleerde JVM/JDK liggen (of versie en/of opties)

offtopic:
Google is trouwens wel snel. Dit topic staat nu al op de 1e bladzijde :P

☻/
/▌
/ \


Verwijderd

Ziet er naar uit dat Netbeans de applet op een verkeerde manier probeert in te lezen. Iets buiten de sandbox ofzo.

Nu ken ik Netbeans niet, maar wellicht dat hij verwacht dat je applet-klasse in een package zit? Ofwel, probeer het eens in een package te plaatsen. Kwestie van een package met bijvb. de naam 'applet' aanmaken, je klasse er in plaatsen en bovenin de regel: package applet; plaatsen

Verwijderd

Ik twijfel of dit topic lang open blijft op zo'n doe_het_zelf_vraag...
Maar vooruit dan maar even:
Verwijderd schreef op woensdag 12 september 2007 @ 10:26:
Er moet inderdaad wel eigenlijk een public void init(){} bij.
Nee er hoeft helemaal geen 'public void init' bij. Je hebt de mogelijkheid om een methode te overiden die na initialisatie wordt aangeroepen. Maar het hoeft helemaal niet als je deze niet nodig hebt.

Dus voor TS: De reden waarom het niet werkt heeft doorgaans te maken met de instellingen van de applet viewer. Dus zoek het probleem bij je IDE.

Verwijderd

Verwijderd schreef op woensdag 12 september 2007 @ 13:02:
Ik twijfel of dit topic lang open blijft op zo'n doe_het_zelf_vraag...
Maar vooruit dan maar even:

[...]

Nee er hoeft helemaal geen 'public void init' bij. Je hebt de mogelijkheid om een methode te overiden die na initialisatie wordt aangeroepen. Maar het hoeft helemaal niet als je deze niet nodig hebt.

Dus voor TS: De reden waarom het niet werkt heeft doorgaans te maken met de instellingen van de applet viewer. Dus zoek het probleem bij je IDE.
ik schrijf nooit applets en ik meende ook te herinneren dat dat niet hoefde (init overschrijven), maar als ik init niet overschrijf krijg ik:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: component argument pData
at sun.awt.windows.Win32SurfaceData.initOps(Native Method)
at sun.awt.windows.Win32SurfaceData.<init>(Win32SurfaceData.java:448)
at sun.awt.windows.Win32SurfaceData.createData(Win32SurfaceData.java:316)
at sun.awt.Win32GraphicsConfig.createSurfaceData(Win32GraphicsConfig.java:357)
at sun.awt.windows.WComponentPeer.replaceSurfaceData(WComponentPeer.java:332)
at sun.awt.windows.WComponentPeer.replaceSurfaceData(WComponentPeer.java:313)
at sun.awt.windows.WComponentPeer$2.run(WComponentPeer.java:353)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
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)

bij het opstarten.

Overigens krijg ik die exception niet elke keer :?
Pagina: 1