Voor een GUI die ik geschreven heb wil ik een plaatje van een brandend lampje kunnen vervangen voor een plaatje van een niet brandend lampje (nee, das niet alles wat het programma doet
)
Ik heb alleen voor het veranderen van het plaatje even een programmatje geschreven. Aangezien ik in een ander topic commentaar kreeg dat t niet te volgen was, heb ik het deze keer geprobeerd zo net mogelijk op te stellen. Als het nu nog niet te volgens is, mijn excuses; Na een half jaar Java besloot mijn school dat C toch een betere taal was, dus ik probeer het zo goed mogelijk te doen met een boek en de API.
Het programma:
Het tekenen van het plaatje gaat gewoon goed, maar als ik op de knop druk verandert er niks. De bedoeling is dat ImageCanvas de image lampuit gaat bevatten. Ik heb geen idee hoe ik dit moet doen en ik kan er ook niets over vinden op GOT of via google.
De vraag is dus eigenlijk hoe ik het ImageCanvas nog aan kan passen nadat de t object gemaakt is.
Wat wel lukt is om alle componenten uit het frame te gooien, de andere image in ImageCanvas ic te laden en dan de ImageCanvas en de Button er weer in te zetten, maar dit wordt bij het programma waar ik het in ga gebruiken redelijk omslachtig en het ziet er ook niet uit.
Het lijkt me dat iets als dit behoorlijk simpel moet zijn, maar ik heb dus gewoon geen enkel idee hoe ik het moet doen.
Bvd
java-n00b
Ik heb alleen voor het veranderen van het plaatje even een programmatje geschreven. Aangezien ik in een ander topic commentaar kreeg dat t niet te volgen was, heb ik het deze keer geprobeerd zo net mogelijk op te stellen. Als het nu nog niet te volgens is, mijn excuses; Na een half jaar Java besloot mijn school dat C toch een betere taal was, dus ik probeer het zo goed mogelijk te doen met een boek en de API.
Het programma:
Java:
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
64
65
66
| import java.awt.*; import java.awt.image.*; import java.awt.event.*; class MainImageCanvas { public static void main (String [] arg) { mooiFrame mf = new mooiFrame(); } } class mooiFrame extends Frame implements ActionListener { Image lampaan = Toolkit.getDefaultToolkit().createImage("e:\\lightbulb.gif");//images aanmaken Image lampuit = Toolkit.getDefaultToolkit().createImage("e:\\lightbulboff.gif"); ImageCanvas ic;//images in canvas zetten Button b1 = new Button("Ok"); mooiFrame() { setLayout(new GridLayout(2,1,5,5)); ic = new ImageCanvas(lampaan); add(ic); add(b1); pack(); setVisible(true); b1.addActionListener(this); } public void actionPerformed(ActionEvent e) { if(e.getSource() == b1) { ic.setImage(lampuit); this.repaint(); pack(); } } } class ImageCanvas extends Canvas { private Image im; public void setImage(Image img) { im = img; } public ImageCanvas(Image img) { im=img; repaint(); } public void paint(Graphics g) { g.drawImage(im, 0, 0, this); } } |
Het tekenen van het plaatje gaat gewoon goed, maar als ik op de knop druk verandert er niks. De bedoeling is dat ImageCanvas de image lampuit gaat bevatten. Ik heb geen idee hoe ik dit moet doen en ik kan er ook niets over vinden op GOT of via google.
De vraag is dus eigenlijk hoe ik het ImageCanvas nog aan kan passen nadat de t object gemaakt is.
Wat wel lukt is om alle componenten uit het frame te gooien, de andere image in ImageCanvas ic te laden en dan de ImageCanvas en de Button er weer in te zetten, maar dit wordt bij het programma waar ik het in ga gebruiken redelijk omslachtig en het ziet er ook niet uit.
Het lijkt me dat iets als dit behoorlijk simpel moet zijn, maar ik heb dus gewoon geen enkel idee hoe ik het moet doen.
Bvd
java-n00b
[ Voor 4% gewijzigd door twilightschild op 18-04-2004 21:46 ]