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

Pagina: 1
Acties:
  • 503 views

Onderwerpen


Acties:
  • 0 Henk 'm!

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

Dennis1812

Amateur prutser

Topicstarter
Hoihoi beste Tweakers,

Vandaag wederom een vraag m.b.t blackjack maken als huiswerkopdracht.
Wij hebben op dit moment deze code:
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
/**
 * @(#)eindelijk.java
 *
 * eindelijk Applet application
 *
 * @author
 * @version 1.00 2011/12/21
 */

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

public abstract class eindelijk 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,eindelijk);
        g.drawImage(plaatje,120,110,eindelijk);
        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;
            }
    }
}

Met deze errors:
Afbeeldingslocatie: http://i43.tinypic.com/2kndix.png
Ik zie dat de lines niet volledig overheen komen dus ik zal de lines waar hij een error in geeft hier nog even los neerzetten:
line 34
code:
1
plaatje1.addActionListener( this );

line 38
code:
1
 g.drawImage(plaatje,20,10,eindelijk);

line 39
code:
1
g.drawImage(plaatje,120,110,eindelijk);

line 52
code:
1
 plaatje = plaatje1;


Wat hebben wij op dit moment zelf al ondernomen?
http://docs.oracle.com/ja...s/api/java/awt/Image.html
Deze documentatie doorgenomen, hierdoor kwamen we onderandere achter de java.awt.image en de abstrac class.
Onze leraar om hulp gevraagd, welke ons doorverwees richting het internet.
Google uitgeprobeert.

Wat is de bedoeling van het uiteindelijke script?
Blackjack kunnen spelen en dus een voldoende voor onze opdracht krijgen, wij hebben op dit moment nog maar 1 plaatje ingevoegd, dit omdat we eerst zeker wilden weten dat het met 1 plaatje goedging, mocht het met 1 plaatje werken, voegen we de overige 10 in.

Ik hoop dat jullie ons kunnen helpen, vorige keer hebben we er al een hoop aan gehad in elk geval :)

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


Acties:
  • 0 Henk 'm!

  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 07-10 14:00

Armageddon_2k

Trotse eigenaar: Yamaha R6

Als je kijkt naar de functie Graphics.DrawImage() dan zal je zien dat deze de volgende parameters meekrijgt:
DrawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)

De eerste parameter is een Image, en niet een string zoals jullie het doen.
Je zal dus eerst je file moeten inladen als Image, en dan pas tekenen.

Acties:
  • 0 Henk 'm!

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

Dennis1812

Amateur prutser

Topicstarter
Laden we hem niet hier in?
plaatje1 = getImage(getDocumentBase(),"02.png");

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


Acties:
  • 0 Henk 'm!

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 23:46

Ventieldopje

I'm not your pal, mate!

Bovendien gaat het op regel 52 mis omdat je net zoals de debugger aangeeft een afbeelding in een string probeert te laden ;)

Die debugger heb je niet voor niks jongens!

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


Acties:
  • 0 Henk 'm!

  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 07-10 14:00

Armageddon_2k

Trotse eigenaar: Yamaha R6

Ja, daar laad je hem in de variabele Plaatje1.
Maar jullie tekenen plaatje

g.drawImage(plaatje,20,10,eindelijk);

En ook hier:
Java:
1
2
3
4
5
6
7
8
9
10
11
    public void actionPerformed( ActionEvent e )
            {

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

[ Voor 60% gewijzigd door Armageddon_2k op 21-12-2011 15:12 ]


Acties:
  • 0 Henk 'm!

  • Ozzie
  • Registratie: Februari 2004
  • Laatst online: 06:50
Een Image object heeft ook helemaal geen methode 'addActionListener()'. Dus die regel kan je sowieso verwijderen.

"Write code as if the next maintainer is a vicious psychopath who knows where you live."


Acties:
  • 0 Henk 'm!

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

Dennis1812

Amateur prutser

Topicstarter
Ah, bedankt mensen!
Ik snap overigens nog steeds niet helemaal waar ik die string in moet veranderen en hoe dat precies zo komt, maar wel heb ik de addactionlistener() weggehaalt. Dit resulteerde in elk geval in 1 error minder. De volgende errors zijn nu nog over:
Cannot find symbol 2x:
code:
1
2
   g.drawImage(plaatje1,20,10,eindelijk);
        g.drawImage(plaatje1,120,110,eindelijk);

imcompatible types:
code:
1
    plaatje = plaatje1;

Die imcompatible types zal weer wel iets met die string van doen hebben vermoed ik?

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


Acties:
  • 0 Henk 'm!

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 23:46

Ventieldopje

I'm not your pal, mate!

denikids schreef op woensdag 21 december 2011 @ 15:24:
Ah, bedankt mensen!
Ik snap overigens nog steeds niet helemaal waar ik die string in moet veranderen en hoe dat precies zo komt, maar wel heb ik de addactionlistener() weggehaalt. Dit resulteerde in elk geval in 1 error minder. De volgende errors zijn nu nog over:
Cannot find symbol 2x:
code:
1
2
   g.drawImage(plaatje1,20,10,eindelijk);
        g.drawImage(plaatje1,120,110,eindelijk);

imcompatible types:
code:
1
    plaatje = plaatje1;

Die imcompatible types zal weer wel iets met die string van doen hebben vermoed ik?
Je Graphics object zal nog wel niet geimporteert zijn, ik werk nooit met Java dus ik weet niet in welke package hij wel zit maar dat moet je kunnen googlen.

Je tweede error heeft inderdaad met incompatible types te maken. Je laad een Image object in een String, dit gaat niet zomaar werken ;)

Dit zijn simpele basis Java dingen, ik neem aan als dit huiswerk is dat er wel het een en ander uigelegt is en dat ze je niet zomaar in het diepe gooien :?

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


Acties:
  • 0 Henk 'm!

  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 07-10 14:00

Armageddon_2k

Trotse eigenaar: Yamaha R6

't is niet de bedoeling dat wij voor debugger gaan lopen spelen hea vriend ;)

ik zal je nog een pointer geven, en dan mag je zelf weer op google verder.

plaatje = plaatje1;
plaatje is een string.
plaatje1 is een Image.

Je probeert daar een afbeelding op te slaan in een tekst..... dat is dus incompatible (You don't say).

Je andere probleem zit em waarschijnlijk in het feit dat "Eindelijk" een classe definitie is. En niet het uitendelijke object.
(Simpel gezegd) Normaal heb je:
Button Btn_AfsluitenKnopje
Je kan met Btn_AfsluitenKnopje (het object) van alles doen bijvoorbeeld te tekst instellen enzo, maar Button kan je niets mee, omdat dit de classe definitie is.
Wat jij met probeert is in feite hetzelfde.

probeer daar eens:
Java:
1
g.drawImage(plaatje,20,10,this);

[ Voor 5% gewijzigd door Armageddon_2k op 21-12-2011 15:33 ]


Acties:
  • 0 Henk 'm!

  • coyote1980
  • Registratie: Februari 2003
  • Laatst online: 23:06
Vergeet je imports ook niet:


code:
1
2
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

Alcohol and Calculus don't mix. Never drink and derive.


Acties:
  • 0 Henk 'm!

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

Dennis1812

Amateur prutser

Topicstarter
Ik snap dat jullie niet als debugger werken, enige wat wij overigens vóór deze odpracht kregen was het boekje java van keuzemodule programmeren van instruct. Dit boek is ons gegeven en mochten wij door gaan werken, uitleg of iets dergelijks hebben we niet gehad.
Wat je verder bedoeld met mijn graphics object is me nog niet helemaal duidelijk, maar ik ben er vrijwel zeker van dat Google mij die duidelijkheid in enkele minuten kan geven.
Hoe ik die image/string moet gaan fixen is me nog even een vraag eigenlijk.
En ik snap dat die fout er is Armageddon, na jouw korte voorbeeld ook precies wat ik fout doe, maar hoe ik dit moet gaan oplossen is me nog eventjes een goede vraag eigenlijk.
Coyote, ik heb ze erbij gezet, resulteerde niet in minder errors.

Ik ga nu eerst eventjes op google opzoek naar die graphics object waar Ventieldopje het over had.

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


Acties:
  • 0 Henk 'm!

  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 07-10 14:00

Armageddon_2k

Trotse eigenaar: Yamaha R6

-O- Je bedoelt dat je dit als opdracht hebt gekregen zonder te weten wat Object georienteerd programmeren is?
Fijne docent...

Acties:
  • 0 Henk 'm!

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

Dennis1812

Amateur prutser

Topicstarter
Ikzelf had dan nog enige programmeerervaring omdat ik veel mSL doe, maar er zaten er ook bij die nog nooit eerder geprogammeert hadden en met dit boekje moesten beginnen.
Die plukken nu random codes van internet voor spelletjes.

Maargoed,
Even googlen levert me dit op voor die graphics object:
import java.awt.Graphics.*;
en dat we er ook nog graphcis bij de public class abstract moeten zetten.
Dit alles resulteert in 1 error over!
En dat is:
D:\informatica\eindelijk\src\eindelijk.java:19: error: '{' expected
public abstract class graphics eindelijk extends Applet implements ActionListener
wat in deze line voorkomt:
code:
1
2
public abstract class graphics eindelijk extends Applet implements ActionListener
{

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


Acties:
  • 0 Henk 'm!

Verwijderd

...
graphics eindelijk Wat mot java hiermee?, dit ziet ie als 2 parameters/argumenten of hoe je dat ookalweer noemt...
Java:
1
Graphics g = new Graphics();

Is dat niet beter?(weet niet of graphics constructor ook nog parameters nodig heeft)

[ Voor 35% gewijzigd door Verwijderd op 21-12-2011 15:49 ]


Acties:
  • 0 Henk 'm!

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

Dennis1812

Amateur prutser

Topicstarter
Ik heb die van die site afgehaald die ik daarnet poste, en ik moet de naam van het document daar toch ook laten staan of niet?
Mocht ik nu overigens niet meer antwoorden, zal dat morgen worden. Les is bijna voorbij en als ik thuiskom moet ik gelijk weer door.

Mochten jullie nog antwoorden of niet meer:
HEEL ERG BEDANKT ALVAST!

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


Acties:
  • 0 Henk 'm!

Verwijderd

denikids schreef op woensdag 21 december 2011 @ 15:49:
Ik heb die van die site afgehaald die ik daarnet poste, en ik moet de naam van het document daar toch ook laten staan of niet?
Mocht ik nu overigens niet meer antwoorden, zal dat morgen worden. Les is bijna voorbij en als ik thuiskom moet ik gelijk weer door.

Mochten jullie nog antwoorden of niet meer:
HEEL ERG BEDANKT ALVAST!
Zie mijn edit(press f5), je docent heeft dus nix over OOP uitgelegd dus... |:(
Het kan geen 'graphics eindelijk' zijn, misschien wel 'Extends Graphics', maar dan moet je een nieuwe klasse maken ervoor
offtopic:
Bij code tag kan je beter code=java tag gebruiken

[ Voor 14% gewijzigd door Verwijderd op 21-12-2011 15:58 ]


Acties:
  • 0 Henk 'm!

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

Creepy

Tactical Espionage Splatterer

Zelfs als het geen schoolopdracht zou zijn verwachten we hier van je dat je zelf compiler error's e.d. kan fixen. Met wat basiskennis van de gebruikte taal + documentatie lezen van de zaken die je gebruikt geven je dan echt voldoende informatie. Dit moet je jezelf kunnen aanleren, en anders zou je het in de eerste plaats aan je docent moeten vragen. Juist omdat het een schoolopdracht betreft leggen we de lat eigenlijk nog ietsje hoger. Je wordt nu echt aan het handje gehouden hier om compiler error's weg te werken. Je mist echt nog basiskennis en daar zul je toch echt eerst zelf meer van moeten weten, anders gaat het niet goedkomen. Wij maken nu de schoolopdracht voor jou, en dat is natuurlijk niet de bedoeling.

Edit: oh, wacht. Dat wist je zelf ook al denikids in "hulp nodig met java game" :/

[ Voor 7% gewijzigd door Creepy op 21-12-2011 20:23 ]

"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.