Ik heb de volgende java-klasse geschreven die moet functioneren als canvas:
De bedoeling is dat het overkoepelende programma eerst zo'n canvas creëert en deze pas vult met een plaatje wanneer de gebruiker op een knop drukt. Dit werkt wel, maar de canvas is in de eerste instantie (dus voordat er op de knop is gedrukt) niet leeg!
Ik zie stukken van de achterliggende applicaties, i.p.v. bijv. een wit egaal vlak.
Weet iemand hoe ik dit moet oplossen?
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
56
57
58
59
60
61
62
63
| import java.applet.*;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
class ImageCanvas extends Canvas
{
private Image image;
public void ImageCanvas()
{
setSize(new Dimension(100, 100));
}
public void update(Graphics g)
{
paint(g);
}
public void initImage()
{
image = createImage(100, 100);
}
public void setImage(Image i)
{
image = i;
if (i.getWidth(this) > i.getHeight(this))
setSize(i.getWidth(this),i.getWidth(this));
else
setSize(i.getHeight(this),i.getHeight(this));
repaint();
}
public Image getImage()
{
return image;
}
public int getWidth()
{
if (image != null)
return image.getWidth(this);
else
return 0;
}
public int getHeight()
{
if (image != null)
return image.getHeight(this);
else
return 0;
}
public void paint(Graphics g)
{
if (image != null)
g.drawImage(image, 0, 0, this);
}
} |
De bedoeling is dat het overkoepelende programma eerst zo'n canvas creëert en deze pas vult met een plaatje wanneer de gebruiker op een knop drukt. Dit werkt wel, maar de canvas is in de eerste instantie (dus voordat er op de knop is gedrukt) niet leeg!
Weet iemand hoe ik dit moet oplossen?