Toon posts:

[Java] Teken-method aanroepen vanuit run()

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb de volgende vraag:

Hoe kan ik vanuit de run()-methode van een applet een methode aanroepen die iets tekent?
Dit is uitgekleed mijn source:
public void paint(Graphics g)
{
Graphics2D g2 = (Graphics2D)g;
// ...
// Hier wordt iets getekend
// ...
}

public void run()
{
showPin(g, 1, 100, 100) // vanuit hier moet de methode showPin uitgevoerd worden
// ...
}

public void showPin(Graphics g, int color, int x, int y)
{
Graphics2D g2 = (Graphics2D)g;
// ...
g2.setColor(Color.white);
// Tekent iets
// ...
}
Vanuit run() lukt het wel om showPin(...) aan te roepen, maar g en g2 zijn leeg. Bij iedere opdracht g2.* die ik geef, geeft het programma dan ook een NullPointerException.

Weet iemand hoe ik dit op kan lossen?

  • KompjoeFriek
  • Registratie: Maart 2001
  • Laatst online: 02-01 05:18

KompjoeFriek

Statsidioot

Word variabele g wel gedeclareerd voordat je
showPin(g, 1, 100, 100); uitvoerd?

WhatPulse! - Rosetta@Home - Docking@Home


Verwijderd

Topicstarter
Ja, hij wordt wel gedeclareerd(anders zou de compiler immers al gaan tegensputteren), maar de variabele g blijft dan gewoon leeg, waardoor je een NullPointerException krijgt.
Ik weet alleen niet goed hoe ik dit op moet lossen.

(misschien is het wel iets heel simpels hoor, ik ben nog maar een redelijke newbie op Java-gebied :))

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 08:34

.oisyn

Moderator Devschuur®

Demotivational Speaker

kun je misschien het stukje code pasten waar g geinitializeert wordt?

oh, en gebruik de [code] .. [ /code] tags ipv de [quote] .. [ /quote] tags, dan wordt het getekend met een monospace font en de spaties en tabs blijven behouden :)

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.


Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public void paint(Graphics g)
{
  Graphics2D g2 = (Graphics2D)g;
  // ...
  // Hier wordt iets getekend
  // ...
}

public void run()
{
  Graphics g;
  showPin(g, 1, 100, 100); // hier moet showPin iets gaan tekenen
  // ...
}

public void showPin(Graphics g, int color, int x, int y)
{
  Graphics2D g2 = (Graphics2D)g;
  g2.setColor(Color.white);
  // wordt iets getekend 
}

Hoe ik g moet initialiseren, dat weet ik juist niet :) :?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 08:34

.oisyn

Moderator Devschuur®

Demotivational Speaker

ah okee :)

met getGraphics () vraag je het Graphics-object van een component op. Let er wel op dat deze null kan zijn in het geval als component niet visible is.

dus doe zoiets in run:
code:
1
2
3
Graphics g = getGraphics ();
if (g != null)
    showPin (g, 1, 100, 100);

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.


Verwijderd

Topicstarter
Kijk dat werkt :)

Kun je alleen nog een keer uitleggen wat die getGraphics() precies doet, van welk component haalt ie het Graphics-object op :?

Iig bedankt :)

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op woensdag 10 oktober 2001 16:33 schreef minne het volgende:
Kijk dat werkt :)

Kun je alleen nog een keer uitleggen wat die getGraphics() precies doet, van welk component haalt ie het Graphics-object op :?

Iig bedankt :)
getGraphics() haalt de graphics op van het object waar je hem op uitvoert.
als je hem gewoon uitvoerd doe je eigenlijk
this.getGraphics();
Pagina: 1