[JAVA]Stomme vraag over Graphics

Pagina: 1
Acties:

  • TheNameless
  • Registratie: September 2001
  • Laatst online: 07-02-2025

TheNameless

Jazzballet is vet!

Topicstarter
Ik heb dit stukje code geprogrammeerd:
code:
1
2
3
4
5
public void draw()
{
  canvas.getGraphics().drawRect(x,y,(breedt*20),(diep*20));
  canvas.getGraphics().drawString(naam,(x+breedt/2*20),(y+diep/2*20));
}

canvas is een aparte klasse die een Canvas is (DUH!:) ). Die heeft voor de rest alleen een paint(Graphics g) methode.
Als ik nu draw() aanroep krijg ik een null-pointer. Iemand een id?


Is vast weer een stomme vraag. |:(

Ducati: making mechanics out of riders since 1946


  • VonAalscht
  • Registratie: November 2001
  • Laatst online: 27-08 16:18

VonAalscht

Raaaar

Heb je wel een instantie van Canvas aangemaakt ?

[ Voor 0% gewijzigd door VonAalscht op 10-09-2002 16:25 . Reden: instantie!=object :) ]


  • TheNameless
  • Registratie: September 2001
  • Laatst online: 07-02-2025

TheNameless

Jazzballet is vet!

Topicstarter
yup
als ik System.out.println(canvas.getGraphics()); aanroep krijg ik ook een null-pointer

Ducati: making mechanics out of riders since 1946


  • VonAalscht
  • Registratie: November 2001
  • Laatst online: 27-08 16:18

VonAalscht

Raaaar

post even je EXACTE code, want op deze manier is het nooit te achterhalen wat er fout gaat :)

(kort 'em eventueel wel een beetje in)

Verwijderd

En je hebt canvas wel geinistialiseerd (canvas = new Canvas(...))?

  • TheNameless
  • Registratie: September 2001
  • Laatst online: 07-02-2025

TheNameless

Jazzballet is vet!

Topicstarter
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
public class Stand implements MouseMotionListener
{
  int breedt;
  int diep;
  int x,y;
  String naam;
  String opmerking;
  boolean links_open;
  boolean rechts_open;

  tekenvel canvas = new tekenvel();

  public Stand(String naam, int breedt, int diep, String opmerking)
  {
    this.naam = naam;
    this.breedt = breedt;
    this.diep = diep;
    this.opmerking = opmerking;
    x=100;y=100;
  }
  public Stand(){}
  public void mouseDragged( MouseEvent e )
  {
    x = e.getX();
    y = e.getY();
    draw();
  }
  public void mouseMoved( MouseEvent e ){}
  public int getX()
  {
    return x;
  }
  public int getY()
  {
    return y;
  }
  public void draw()
  {
    canvas.getGraphics().drawRect(x,y,(breedt*20),(diep*20));
    canvas.getGraphics().drawString(naam,(x+breedt/2*20),(y+diep/2*20));
  }
}

Ducati: making mechanics out of riders since 1946


  • TheNameless
  • Registratie: September 2001
  • Laatst online: 07-02-2025

TheNameless

Jazzballet is vet!

Topicstarter
en de code van tekenvel
code:
1
2
3
4
5
6
public class tekenvel extends Canvas
{
  public void paint(Graphics g)
  {
  }
}

Ducati: making mechanics out of riders since 1946


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

post de code van Tekenvel ook eens

[ Voor 0% gewijzigd door curry684 op 10-09-2002 16:34 . Reden: gekruist :) ]

Professionele website nodig?


  • TheNameless
  • Registratie: September 2001
  • Laatst online: 07-02-2025

TheNameless

Jazzballet is vet!

Topicstarter
Het programma moet verschillende stands gaan tekenen en die moeten onafhakelijk zijn te verslepen.

Ducati: making mechanics out of riders since 1946


  • bluewarlord
  • Registratie: Augustus 2000
  • Laatst online: 07-06 09:58
Moet je geen super aan je tekenvel toevoegen?

Language exists to conceal true thought


  • bluewarlord
  • Registratie: Augustus 2000
  • Laatst online: 07-06 09:58
M.a.w.:

public class tekenvel extends Canvas // Opmerking: class names in java beginnen in de conventie met
//een hoofdletter
{
public void paint(Graphics g)
{
super.paint(g); // Call the parent paint method
}
}

//Edit: Dit werkt niet en ik ben dom

Language exists to conceal true thought


  • TheNameless
  • Registratie: September 2001
  • Laatst online: 07-02-2025

TheNameless

Jazzballet is vet!

Topicstarter
Dat van die hoofdletter was een foutje 8)7

Ducati: making mechanics out of riders since 1946


  • bluewarlord
  • Registratie: Augustus 2000
  • Laatst online: 07-06 09:58
Niet in de constructor maar in je paint methode zoals hierboven aangegeven ....

Language exists to conceal true thought


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:01

.oisyn

Moderator Devschuur®

Demotivational Speaker

canvas is waarschijnlijk ook niet null, maar het resultaat van getGraphics ()
is de canvas al geadd? en is ie zichtbaar op het scherm?

bluewarlord: super () roep je alleen aan in de constructor. Als je de paint methode van de superclass aan wil roepen doe je super.paint (...)
.edit: dit kan overigens niet de reden zijn van de nullpointer exception

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • TheNameless
  • Registratie: September 2001
  • Laatst online: 07-02-2025

TheNameless

Jazzballet is vet!

Topicstarter
/edit
Het canvas is zeker zichtbaar op het scherm :)

Ducati: making mechanics out of riders since 1946


  • TheNameless
  • Registratie: September 2001
  • Laatst online: 07-02-2025

TheNameless

Jazzballet is vet!

Topicstarter
Maar de canvas is geadd op een andere klasse dat een frame is. Ik wil dus vanuit andere klasse dan het frame tekenen op dat Canvas

Ducati: making mechanics out of riders since 1946


  • bluewarlord
  • Registratie: Augustus 2000
  • Laatst online: 07-06 09:58
Okee, het is niet de super. Een vraagje, waarom inherit Stand niet van Canvas en plaats je de code van draw niet in paint? Kun je meteen de invalidation van het canvas gebruiken om je figuur uptodaten

Language exists to conceal true thought


  • TheNameless
  • Registratie: September 2001
  • Laatst online: 07-02-2025

TheNameless

Jazzballet is vet!

Topicstarter
Ik heb het eindelijk werken. Ik heb in Stand een methode tekenIn(Canvas c) toegevoegd die door het frame wordt aan geroepen. Zo wordt Stand getekend op het canvas dat in het Frame staat.

idd een stomme vraag dus.
maar even goed bedankt :)

Ducati: making mechanics out of riders since 1946


  • bluewarlord
  • Registratie: Augustus 2000
  • Laatst online: 07-06 09:58
Aha, het graphics element is niet bekend bij de canvas omdat het frame deze aan het canvas moet geven. Maar je maakt zelf een canvas aan en je fframe heeft geen pointer naar dit canvas. OKee, weer wat geleerd :-)

Language exists to conceal true thought

Pagina: 1