login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Java compileer fout,of toch iets anders?

Offline Xsk1l3rX - 08/07/2008 20:34 (laatste wijziging 08/07/2008 20:35)
Avatar van Xsk1l3rXLid Kijk,ik zat de tutorial te volgen van Java deel drie (We gaan tekenen!).
En ik probeer dat stukje over Waarde's van X,Y te verwerken maar krijg de hele tijd dat ik mijn file type naam verkeerd op sla,maar ik sla hem werkelijk op als het bestand zich noemt in dit geval "Tekenplaatje.java"

Zo ziet de code eruit:

  1. import java.applet.Applet;
  2. import java.awt.Event;
  3. import java.awt.Graphics;
  4.  
  5. public class tekenenapplet extends Applet{
  6. int y_waarde;
  7. int x_waarde;
  8.  
  9. public boolean mouseDown(Event e, int x, int y){
  10. y_waarde = y;
  11. x_waarde = x;
  12. return true;
  13. }
  14.  
  15. public boolean mouseDrag(Event e, int x, int y){
  16. Graphics g = getGraphics();
  17. g.drawLine(x_waarde, y_waarde, x, y);
  18. y_waarde = y;
  19. x_waarde = x;
  20. return true;
  21. }
  22. }


Dit is dus dat stukje uit de tutorial,hier neem ik geen copyrights aan.
Maar zodra ik hem probeer te compilen,krijg ik deze error:

Tekenapplet.java:5: class tekenapplet is public, should be declared in a file named tekenapplet.java
Public class tekenapplet.java extends Applet{
^
Note: Tekenapplet.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error.

Raar maar waar,ik heb het programma toch echt opgeslagen in Tekenapplet.java in mijn bin file van JDK.


Iemand ideën wat ik kan doen hier tegen? of misschien iets dat ik fout doe? zou mooi zijn als iemand het wist ;)


PS. Nemesiskoen verzocht in die tutorial dat alle fouten die je krijgt op het forum thuishoorde,dus dacht ik,ik zal dat even doen. 

9 antwoorden

Gesponsorde links
Offline Stijn - 08/07/2008 21:07
Avatar van Stijn PHP expert De classname moet met een hoofdletter beginnen.
Offline Xsk1l3rX - 08/07/2008 21:08 (laatste wijziging 08/07/2008 21:09)
Avatar van Xsk1l3rX Lid Hoe bedoel je dat? ik heb het nu met Tekenapplet.java opgeslagen,en toen JAVAC Tekenapplet.java gedaan,maar krijg precies dezelfde fout.
Offline Koen - 08/07/2008 22:04
Avatar van Koen PHP expert
Xsk1l3rX schreef:
Hoe bedoel je dat? ik heb het nu met Tekenapplet.java opgeslagen,en toen JAVAC Tekenapplet.java gedaan,maar krijg precies dezelfde fout.

Met classname bedoelt Stijn

public class Tekenenapplet extends Applet{

Grts
Offline Xsk1l3rX - 08/07/2008 22:15
Avatar van Xsk1l3rX Lid Oke,dat probleem is opgelost ;) ben ik blij mee.
Nu heb ik echter dit;

  1. import java.applet.Applet;
  2. import java.awt.Event;
  3. import java.awt.Graphics;
  4.  
  5. public class Tekenenapplet.java extends Applet{
  6. int y_waarde;
  7. int x_waarde;
  8. }
  9. public boolean mouseDown(Event e, int x, int y){
  10. y_waarde = y;
  11. x_waarde = x;
  12. return true;
  13. }
  14.  
  15. public boolean mouseDrag(Event e, int x, int y){
  16. Graphics g = getGraphics();
  17. g.drawLine(x_waarde, y_waarde, x, y);
  18. y_waarde = y;
  19. x_waarde = x;
  20. return true;
  21. }
  22. }


En krijg ik heel veel Class,interfaces,or enum expected fouten.
Ik snap dat niet,want heb de { op lijn 5 netjes gesloten door een } accolade te plaatsen op lijn 8..
Kan iemand me hiermee verder helpen?
Offline Berten - 09/07/2008 10:29 (laatste wijziging 09/07/2008 11:33)
Avatar van Berten PHP beginner die accolade op lijn 8 moet weg

je maakt een klasse, en dan zet je een hoop methodes buiten de klasse.

Verder moet de extensie .java niet achter je klassenaam komen.
Maak er verder ook een gewoonte van om variabelen die je over heel de klasse kan aanspreken op te vragen met het this. keyword, dat zal je in de toekomst veel ellende besparen.

het moet zo:
filename = TekenApplet.java

source =
  1. import java.applet.Applet;
  2. import java.awt.Event;
  3. import java.awt.Graphics;
  4.  
  5. public class TekenApplet extends Applet{
  6.  
  7. private int y_waarde; // Proximus heeft gelijk
  8. private int x_waarde; // Proximus heeft gelijk
  9.  
  10. public boolean mouseDown(Event e, int x, int y){
  11. this.y_waarde = y;
  12. this.x_waarde = x;
  13. return true;
  14. }
  15.  
  16. public boolean mouseDrag(Event e, int x, int y){
  17. Graphics g = getGraphics();
  18. g.drawLine(x_waarde, y_waarde, x, y);
  19. this.y_waarde = y;
  20. this.x_waarde = x;
  21. return true;
  22. }
  23. }
Offline Ontani - 09/07/2008 10:42
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Als je dan je variablen toch bovenaan declareerd zet er dan ook meteen private voor.
Offline Xsk1l3rX - 09/07/2008 10:59
Avatar van Xsk1l3rX Lid
Berten schreef:
die accolade op lijn 8 moet weg

je maakt een klasse, en dan zet je een hoop methodes buiten de klasse.

Verder moet de extensie .java niet achter je klassenaam komen.
Maak er verder ook een gewoonte van om variabelen die je over heel de klasse kan aanspreken op te vragen met het this. keyword, dat zal je in de toekomst veel ellende besparen.

het moet zo:
filename = TekenApplet.java

source =
[..code..]


Die accolade hoort bij accolade 8.
@ Ontani, Private heb ik ook al geprobeerd,werkte ook niet.
Ik zal eens Eclipse proberen i.p.v JCreator.
Ik zal het straks nog eens proberen.
Offline Ontani - 09/07/2008 11:12
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Dit ligt heus niet aan de editor maar aan je code
Offline Berten - 09/07/2008 11:20
Avatar van Berten PHP beginner
Xsk1l3rX schreef:
[..quote..]

Die accolade hoort bij accolade 8.


Moet ik het nogmaals herhalen?

de accolade op lijn 8 zorgt ervoor dat je je class direct afsluit. Dit wil je niet, de 2 methodes eronder horen ook nog thuis in de class body.

Verder: als je je accolades telt sluit je er meer dan dat je er opent, dit zou toch wel een hint moeten zijn

Verder is het een goed plan om met Eclipse te werken, het is waarschijnlijk wel mijn favoriete IDE.

Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.217s