Java newbie vraag 'class can't be instantiated'

Pagina: 1
Acties:

  • rjeggens
  • Registratie: Juni 2000
  • Laatst online: 06-02-2025
Ik moet voor een opdrachtje voor school een progje maken met ballonnetjes. Ik krijg alleen een irritante error waarvan ik niet weet wat ik er mee aan moet.
code:
1
2
3
4
5
6
7
8
9
10
appletviewer Ballon.html 

load: Ballon.class can't be instantiated.
java.lang.InstantiationException: Ballon
    at java.lang.Class.newInstance0(Native Method)
    at java.lang.Class.newInstance(Class.java:237)
    at sun.applet.AppletPanel.createApplet(AppletPanel.java:579)
    at sun.applet.AppletPanel.runLoader(AppletPanel.java:515)
    at sun.applet.AppletPanel.run(AppletPanel.java:293)
    at java.lang.Thread.run(Thread.java:484)

De source codes die ik nu heb zijn:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class BallonApplet extends Applet
{
    Ballon testBallon;
    
    public void paint(Graphics g)
    {
        g.drawString("Hello",10,10);
        //testBallon = new Ballon(40,40,25);
        //testBallon.drawBallon(g);
    }
    
    public void init()
    {
        testBallon = new Ballon(40,40,25);
        repaint();
    }
}

en
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class Ballon
{
    private int x;  
    private int y;      // X en Y coordinaten van de Ballon.
    private Color kleur;    // Kleur van de Ballon.
    private int diameter;   // Diameter van de Ballon.
    
    //  Ballon constructor. 
    public Ballon(int ballonX, int ballonY, int ballonDiameter) 
    {
        x = ballonX;
        y = ballonY;
        diameter = ballonDiameter;
        kleur = Color.orange;
    }
    
    public Ballon(int ballonX, int ballonY, int ballonDiameter, Color ballonKleur)
    {
        x = ballonX;
        y = ballonY;
        diameter = ballonDiameter;
        kleur = ballonKleur;
    }

    public void drawBallon(Graphics g)
    {
        g.setColor(kleur);
        g.fillOval(x,y, diameter,diameter);
        g.setColor(Color.black);
        g.drawOval(x, y, diameter, diameter);
    }

}

Dit zou toch gewoon moeten werken? Of ben ik nu iets vergeten. Ik zie niet in waarom hij die klasse niet kan maken.

  • rjeggens
  • Registratie: Juni 2000
  • Laatst online: 06-02-2025
Niemand die hier een idee over heeft *snif* Zo moeilijk moet het niet zijn (vooral niet voor de Java-goeroe's onder ons)

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op donderdag 11 oktober 2001 12:46 schreef rjeggens het volgende:
Niemand die hier een idee over heeft *snif* Zo moeilijk moet het niet zijn (vooral niet voor de Java-goeroe's onder ons)
Voor een T.net Crew member kick je aardig snel.

  • tomato
  • Registratie: November 1999
  • Niet online
Op donderdag 11 oktober 2001 12:53 schreef Nielsz het volgende:

[..]

Voor een T.net Crew member kick je aardig snel.
Voor een gewoon member ook.

  • rjeggens
  • Registratie: Juni 2000
  • Laatst online: 06-02-2025
Moah, uurtje.. Moet kunnen :) *grijns* Probleem is dat het een stomme showstopper is..

  • joepP
  • Registratie: Juni 1999
  • Niet online
Geduld? Binnen 2 uur je eigen topic kicken?

:Z

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik denk dat je aangegeven hebt dat je Ballon als applet wilt gebruiken in je Ballon.html....

In dit geval: |:( ;)
Anders: post je html ff

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • rjeggens
  • Registratie: Juni 2000
  • Laatst online: 06-02-2025
Ok.. ik ben stom, gooi dit topic maar op slot. Na alles 10x te hebben nageplozen, heb ik een tikfout in mijn HTML bestandje gemaakt. Lach maar, toe maar.. ik kan er wel tegen *huil*

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
rjeggens: Ok.. ik ben stom, gooi dit topic maar op slot. Na alles 10x te hebben nageplozen, heb ik een tikfout in mijn HTML bestandje gemaakt. Lach maar, toe maar.. ik kan er wel tegen *huil*
Het was dus waarschijnlijk wat ik zei?

Hoe had je dit zelf kunnen verzinnen:
InstantiatonException met newInstance... Dan kan er dus via reflectie niet met Class.newInstance() dus geen nieuw object worden gemaakt. Je maakt een object aan van Ballon via reflectie. Dat doet jouw code echter nergens. Applets worden wel gemaakt via reflectie -> Waarschijnlijk gebruik je Ballon als Applet.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Arnout
  • Registratie: December 2000
  • Laatst online: 11-09 16:05
Heb dus zelfde probleem. HTML nageplozen, echter niks kunnen ontdekken. Ik gebruik ook geen Swing classes.

Eerst werkte het wel goed, maar nadat ik het nodig vond om een Timer en een TimerTask (java.util.Timer & java.util.TimerTask) te gaan gebruiken gaat ie ineens de melding geven: load: Life can't be instantiated.

Als ik dan in de java console kijk zie ik een SecurityExceptionEx staan: bad file, daarna een InstantiationException.

Heb het halve internet al nageplozen naar soortgelijke meldingen, maar de oplossing varieren van een foute HTML, HTML converter gebruiken (maar dit gaat alleen op voor Swing classes IMHO) tot abstracte klassen bieden volgens mij geen oplossing (symptomen komen niet overeen met mijn probleem).

Ik denk dat het komt omdat ik ineens met Threads ga werken en bepaalde dingen over het hoofd zie.

Het programma waar het om gaat is het welbekende Life (Conway's Life) wat ik dus zelf wil bouwen. Het hele mechanisme werkt, echter ik wil graag dat het uit zichzelf evolueert d.m.v. een button, en daarvoor had ik dus bedacht een TimerTask aan te maken (scheduledAtFixedRate) maar dit blijkt dus niet zo simpel te zijn als verwacht.

Ik gebruik:
- jdk1.3
- JCreator 1.53
- Internet Explorer 5.01

Via de appletviewer wil het _WEL_ lukken (gelukkig nog wel :))

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

als het via de AppletViewer wel werkt zou ik toch nog ff naar de html kijken

Dat de Timer een SecuriryException geeft lijkt mij onwaarschijnlijk (maar zou goed kunnen hoor)

  • Arnout
  • Registratie: December 2000
  • Laatst online: 11-09 16:05
Op dinsdag 06 november 2001 09:48 schreef wasigh het volgende:
als het via de AppletViewer wel werkt zou ik toch nog ff naar de html kijken

Dat de Timer een SecuriryException geeft lijkt mij onwaarschijnlijk (maar zou goed kunnen hoor)
Heb helaas de source noch de html bij de hand. Hij gaf een melding in de volgende trand:

SecurityExceptionEx: bad file: ../life/java/util/TimerTask.class

Hij probeert dus de class TimerTask te vinden in een subdirectory van de projectmap :?

  • actieman
  • Registratie: Mei 2000
  • Laatst online: 07-09 20:13
hmmz opdracht met ballonnetjes lijkt verdacht veel op "java stap voor stap" boek :)

I’m not like the OTTERS


  • Arnout
  • Registratie: December 2000
  • Laatst online: 11-09 16:05
Op dinsdag 06 november 2001 10:17 schreef actieman het volgende:
hmmz opdracht met ballonnetjes lijkt verdacht veel op "java stap voor stap" boek :)
Ja, dit gebruiken wij ook, ben al wat verder. Life staat ergens in hoofstuk 14 (14.8 of zo).

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
MetHod: Heb dus zelfde probleem.
Niet helemaal: de fout van de topic-starter was lag een het opgeven van de verkeerde applet-class in de html code.
Ik gebruik ook geen Swing classes.
Zelfs als je ze wel zou gebruiken, zou dit geen probleem op mogen leveren als je J2SE 1.3 draait.
Eerst werkte het wel goed, maar nadat ik het nodig vond om een Timer en een TimerTask (java.util.Timer & java.util.TimerTask) te gaan gebruiken gaat ie ineens de melding geven: load: Life can't be instantiated.
Waarschijnlijk mist de klasse java.util.Timer dus.
HTML converter gebruiken (maar dit gaat alleen op voor Swing classes IMHO)
De HTML converter moest je (tot voor kort) gebruiken voor alle applets die Java 2 technologie gebruiken. Het heeft helemaal niets direct met Swing te maken. Swing is echter Java 2 technologie, waardoor daar vaak dit probleem voorkomt.

De oplossing is simpel: HTML converter gebruiken, of de nieuwe Java 2 Plug-in downloaden die nu ook eindelijk werkt voor Applet tags: http://java.sun.com/getjava/
Via de appletviewer wil het _WEL_ lukken (gelukkig nog wel :))
Klopt, die gebruikt ook de Java 2 Plug-in. In de browser wordt de Microsoft Java VM gebruikt en die is 1.1.4 (in ;) ) compatible

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Arnout
  • Registratie: December 2000
  • Laatst online: 11-09 16:05
Op dinsdag 06 november 2001 10:52 schreef mbravenboer het volgende:

[...]

De oplossing is simpel: HTML converter gebruiken, of de nieuwe Java 2 Plug-in downloaden die nu ook eindelijk werkt voor Applet tags: http://java.sun.com/getjava/
Mijn dank is bij voorbaat al groot (ik hoop alleen dat het gaat werken).

Volgens jou is het dus een kwestie van de HTML converter gebruiken. Maar deze convert de HTML toch naar een HTML waarbij de browser automatisch de plugin gaat downloaden?

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
MetHod: Volgens jou is het dus een kwestie van de HTML converter gebruiken. Maar deze convert de HTML toch naar een HTML waarbij de browser automatisch de plugin gaat downloaden?
De HTML converter converteert een applet die opgenomen is mbv de Applet tag naar een object tag (de applet tag is door het w3c (terecht) zelfs deprecated). De gegenereerde object tag verplicht inderdaad het gebruik van een Java 2 Standard Edition Plug-in van Sun. Als die niet beschikbaar is, kan hij gedownload worden.

Deze nieuwe Plug-in (zie link) pakt nu eindelijk ook de applets die met behulp van de applet tag zijn ingevoegd. Uiteraard werkt dit pas als de plugin eenmaal is geinstalleerd en het is daarom in alle gevallen beter om de object tag te gebruiken (eventueel gegeneerd met de HTML Converter).

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Arnout
  • Registratie: December 2000
  • Laatst online: 11-09 16:05
Op dinsdag 06 november 2001 11:15 schreef mbravenboer het volgende:

[..]

De HTML converter converteert een applet die opgenomen is mbv de Applet tag naar een object tag (de applet tag is door het w3c (terecht) zelfs deprecated). De gegenereerde object tag verplicht inderdaad het gebruik van een Java 2 Standard Edition Plug-in van Sun. Als die niet beschikbaar is, kan hij gedownload worden.

[..]
Wat ik dan niet begrijp is waarom dit probleem zich 'ineens' voordoet nadat ik met thread's (scheduledAtFixedRate / TimerTask plus een Timer) aan de slag ben gegaan.

De eigenlijke reden waarom ik de TimerTask gebruik is een beetje }:O, ik wil bewerkstelligen dat er een kleine pauze ingelast wordt nadat 'ie repaint() heeft gedaan (ongeveer 300-400ms), en ik wil tussentijds nog wel op 'Stop' kunnen drukken.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
MetHod: Wat ik dan niet begrijp is waarom dit probleem zich 'ineens' voordoet nadat ik met thread's (scheduledAtFixedRate / TimerTask plus een Timer) aan de slag ben gegaan.
Als je alleen met Threads werkt is er geen probleem. java.util.Timer zit echter niet in 1.1.4 en dus ook niet in de Microsoft JVM. Kijk maar eens in de API documentation: Since:
1.3

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Arnout
  • Registratie: December 2000
  • Laatst online: 11-09 16:05
Op dinsdag 06 november 2001 12:13 schreef mbravenboer het volgende:

[..]

Als je alleen met Threads werkt is er geen probleem. java.util.Timer zit echter niet in 1.1.4 en dus ook niet in de Microsoft JVM. Kijk maar eens in de API documentation: Since:
1.3
Dit is het probleem dus. Erg bedankt voor je hulp!

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
MetHod: Dit is het probleem dus. Erg bedankt voor je hulp!
Graag gedaan ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment

Pagina: 1