[java]blackjack maken - error - plaatje inladen? Overzicht Laatste deel

Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.

Pagina: 1
Acties:
  • 588 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Dennis1812
  • Registratie: Mei 2011
  • Laatst online: 22:33

Dennis1812

Amateur prutser

Topicstarter
Wij moeten voor school een spelletje maken, we hebben gekozen voor het spel Blackjack, nou zou dit niet al te ingewikkeld moeten zijn.
Eerst de code die wij tot nu toe hebben:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/**
 * @(#)Spel.java
 *
 * Spel Applet application
 *
 * @author
 * @version 1.00 2011/11/30
 */

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

public class Spel extends Applet
implements ActionListener
{
    Button knopkaart;
    Button knopopgeven;
    Image plaatje1, plaatje2, plaatje3, plaatje4, plaatje5, plaatje6, plaatje7, plaatje8, plaatje9, plaatje10;
    String plaatje;
    int plaatjegetal;
    public void init()
        
    {
        knopkaart= new Button ("kaart");
        knopkaart.addActionListener( this );

        knopopgeven= new Button ("opgeven");
        knopopgeven.addActionListener ( this );

        add( knopkaart );
        add( knopopgeven );
        plaatje1 = getImage(getDocumentBase(),"02.png");
        plaatje1.addActionListener(this);
        }

    public void paint(Graphics g) {
        g.drawImage(plaatje,20,10,this);
        g.drawImage(plaatje,120,110,this);
        g.drawString("Welcome to Java!!", 50, 60 );

    }

    public void ActionPerformed( ActionEvent e )
            {

        if(e.getsource == knopkaart )
        {
            plaatjegetal = (int) ( 9 * Math.random() + 1 );
        }
            if(plaatjegetal == 1 ) {
                plaatje = plaatje1;
            }
    }
}

Wij hebben zoals je ziet eerst 1 plaatje in laten laden, om te testen of dat werkt. Mocht dat werken willen wij de rest van de plaatjes random in kunnen laten laden door middel van een button. Maar hier krijgen we errors:
Afbeeldingslocatie: http://i41.tinypic.com/igf0bc.png
Wij komen hier niet meer aan uit, maar onze leraar ook niet. Op google hebben we al gezocht of het uberhaubt wel mogelijk is om een actionlistener toe te voegen aan een plaatje, dit schijnt wel mogelijk te zijn. We hebben het ook al even laten rusten om te zien of we het daarna weer wel snapten, maar we komen er nog steeds niet aan uit. En onze leraar gaf ons het advies om op een forum om hulp te vragen, en aangezien ik goede ervaringen heb met GoT ging ik wederom gelijk naar mijn oude vertrouwde forumpje :)

TL:DR versie: Wie weet hoe we deze errors kunnen fixen?

Volgens mijn dokter ben ik een heel zeldzaam geval. Deal with it.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Het zou wel verdomd handig zijn als de regelnummers overeen kwamen...
De "No suitable method" slaat op 't feit dat je plaatje als String declareert en dus gaat Java op zoek naar een drawImage-method met de string, int, int, spel-signature. Waarbij die laatste parameter ook erg dubieus is. Alle drawImage signatures beginnen toch echt met drawImage(Image img, int x, int y,...

De "cannot find symbol" meldingen zijn zaken die 'ie niet kan vinden zoals een "getImage" methode die je "out of the blue" aanroept op (hier) regel 33 of een e.getsource (=property/field) dat, naar ik vermoed e.getsource() (=method) moet zijn.

De "incompatible types" is ook logisch: op (hier) regel 52 schrijf je: plaatje = plaatje1;. Kijk nou nog eens naar je declaraties. Je assigned een Image aan een String...

Maar dit is gewoon een kwestie van foutmeldingen (leren) lezen en interpreteren. Niet meer en niet minder.

[ Voor 37% gewijzigd door RobIII op 08-12-2011 11:11 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Enfer
  • Registratie: Februari 2004
  • Laatst online: 10-10 13:28
Let er sowieso ook even op dat je ActionPerformed met een hoofdletter geschreven hebt, terwijl dit natuurlijk actionPerformed met een kleine letter moet zijn..

Let er ook even op dat drawImage een ImageObserver object als argument verwacht (is niet altijd verplicht!), terwijl jij een Spel object meegeeft.. Rara wat gaat er dan fout?


@RobIII
De "cannot find symbol" meldingen zijn zaken die 'ie niet kan vinden zoals een "getImage" methode die je "out of the blue" aanroept op (hier) regel 33 of een e.getsource dat, naar ik vermoed e.getsource() moet zijn.
< Hij erft van de klasse Applet, vandaar dat getImage wel gedefinieerd zou moeten zijn :) ..

[ Voor 74% gewijzigd door Enfer op 08-12-2011 11:02 ]


Acties:
  • 0 Henk 'm!

  • Dennis1812
  • Registratie: Mei 2011
  • Laatst online: 22:33

Dennis1812

Amateur prutser

Topicstarter
Jeej, weer 1 error minder :) Dankjewel Enfer. 5 to go.
En @roblll, we moeten ergens die getImage methode aanroepen toch? Waar zouden we die dan moeten aanhalen? En ik weet ook niet waarom je zegt dat die ene methode dubieus is, ons werd verteld dat die perse zo moest omdat het anders niet zou werken.
Maar het kan dus ook op een andere (makkelijkere manier?)

Volgens mijn dokter ben ik een heel zeldzaam geval. Deal with it.


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
denikids schreef op donderdag 08 december 2011 @ 10:58:
En @roblll, we moeten ergens die getImage methode aanroepen toch? Waar zouden we die dan moeten aanhalen?
Jij bent hier de programmeur van 't project... niet ik/wij.
denikids schreef op donderdag 08 december 2011 @ 10:58:
En ik weet ook niet waarom je zegt dat die ene methode dubieus is
Die methode is niet dubieus maar 't lijkt me sterk dat een drawImage als eerste parameter een string zou hebben i.p.v. een Image en ik zou niet weten waarom een drawImage interesse zou hebben in een "Spel" object (die je als laatste parameter meegeeft) tenzij dat een soort 'userstate' is ofzo.
edit:

Ah, ok, dat zou een "ImageObserver" ofzo kunnen zijn dus. Lijkt me alleen wel dat "Spel" die Interface dan moet implementen wil je "Spel" meegeven aan DrawImage. Maar mijn Java is niet heel sterk; misschien dat ik er langs zit...
denikids schreef op donderdag 08 december 2011 @ 10:58:
ons werd verteld dat die perse zo moest omdat het anders niet zou werken.
Ja, dat is nog eens een goeie uitleg :X :X Je kunt natuurlijk ook gewoon de documentatie er eens bij nemen.
denikids schreef op donderdag 08 december 2011 @ 10:58:
Maar het kan dus ook op een andere (makkelijkere manier?)
Waar wordt dat beweerd :?
Enfer schreef op donderdag 08 december 2011 @ 10:57:

< Hij erft van de klasse Applet, vandaar dat getImage wel gedefinieerd zou moeten zijn :) ..
Ja, correct, dat zag ik net ook. Maar getsource moet nog steeds getsource() zijn.

Ik vind 't overigens ronduit beschamend dat een leraar hier niet uit zou komen.

[ Voor 23% gewijzigd door RobIII op 08-12-2011 11:05 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Dennis1812
  • Registratie: Mei 2011
  • Laatst online: 22:33

Dennis1812

Amateur prutser

Topicstarter
De enige documentatie die wij hebben gekregen over plaatjes is deze:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class plaatje extends Applet
{
Image plaatje;
public void init()
{
plaatje = getImage(getDocumentBase(),"0,001.jpg");
}
public void paint(Graphics g)
{
g.drawImage(plaatje,20,10,this);
g.drawImage(plaatje,120,110,this);
g.drawString("het bestand 001.jpg moet in de map classes staan!!",10, 10);
}
}


Ik ga nog eens kijken na jullie berichten, misschien kunnen we er iets mee. Bedankt alvast!
e.getsource() is al aangepast, dit mocht voor de errors overigens niet baten.
De les is nu voorbij, eventuele latere aanpassingen en nieuwe berichten kan ik vanmiddag pas lezen, maar tot zover alvast heel erg bedankt :) en ik zal vanmiddag zeker nog eventjes gaan puzzelen. Hopelijk kom ik er nu wel uit met de tips die me in de juiste richting duwen :)

[ Voor 26% gewijzigd door Dennis1812 op 08-12-2011 11:13 ]

Volgens mijn dokter ben ik een heel zeldzaam geval. Deal with it.


Acties:
  • 0 Henk 'm!

  • TJHeuvel
  • Registratie: Mei 2008
  • Niet online
Dat is geen documentatie, dat is voorbeeldcode.
Dit is documentatie.

Freelance Unity3D developer


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Redelijk shocking dat je leraar je met dit soort basiswerk niet kan helpen overigens.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 02-10 16:55
Ik zou klagen bij je school / cursus dat de leraar blijkbaar geen Java kent, alleen zooi uit een lesboek. De foutmeldingen moet je gewoon 1 voor 1 gaan bekijken, uitzoeken wat de fout is en wat het betekent, en oplossen. Back to basics - de Java basiscursus gaan doen - is ook niet verkeerd misschien. Basiskennis als types en dergelijke zijn wel nodig bij deze eenvoudige oefeningen.

Acties:
  • 0 Henk 'm!

  • Dennis1812
  • Registratie: Mei 2011
  • Laatst online: 22:33

Dennis1812

Amateur prutser

Topicstarter
Dankjewel TJHeuvel, zal dat eens door gaan kijken en met de info uit de overige posts zou het wel moeten lukken denk ik. Mocht het nog niet lukken geef ik gewoon nog een post :)

Volgens mijn dokter ben ik een heel zeldzaam geval. Deal with it.


Acties:
  • 0 Henk 'm!

  • themole
  • Registratie: Juli 2010
  • Laatst online: 19-11-2023
Hydra schreef op donderdag 08 december 2011 @ 11:16:
Redelijk shocking dat je leraar je met dit soort basiswerk niet kan helpen overigens.
Idd dit zou het zo moeten kunnen zien, je kan toch geen les geven als je zelf de stof niet beheerst. : :F

Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 23:49

DataGhost

iPL dev

Waarschijnlijk is het dan ook gewoon de "systeembeheerder" die ooit per ongeluk de broncode van een java-progsel heeft gedownload in plaats van de binary, dat op z'n CV heeft gezet, de directeur vond dat genoeg en nu geeft hij "instructie" (geen les! dat mag niet!) aan de leerlingen. Zoals het op scholen wel vaker gaat is de "systeembeheerder" of "hoofd ICT" of wat dan ook gewoon een leraar die "goed met computers is". Bij mij op de middelbare school was het voor 5e- en 6e-klassers, in de 4e keek ik eens mee tijdens zo'n "les" en toen waren ze bezig met het maken van boter, kaas en eieren in Visual Basic. In de code stonden flink wat blokken van 9 regels lang, die begonnen met if en werden gevolgd door veel and-jes. Ik ben toen maar afgehaakt.

[ Voor 26% gewijzigd door DataGhost op 08-12-2011 15:13 ]


Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Ik ging ervanuit dat hij met "School" HBO bedoelde, en daar mag je wel iets meer van verwachten dan dat een leraar "perongelijk een keer de Java sources gedownload heeft". Die van ons waren destijds ook niet super, maar dit soort volledig triviale zaken begrepen ze echt wel.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 23:49

DataGhost

iPL dev

TS is 15 :+

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:12

Creepy

Tactical Espionage Splatterer

Goed, dat was wel weer genoeg offtopic ;) Als de TS een nieuwe concrete vraag heeft dan kan er een nieuw topic worden geopend. Let daarbij dan wel op Het algemeen beleid #quickstart want zomaar errors dumpen en hopen dat we het gaan fixen is eigenlijk niet de bedoeling .

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.