Listing Applet
Listing ObservableDobbelsteen
Listing obsTexfield
Listing obsLabel
What it does
Zodra ik op de knop Dobbel druk vangt de Event Handler dat voor me af en roept uiteindelijk dobblsteen.gooi() aan. De gaat een random getal genereren en vult vult het attribuut ogen met de gevonden waarde... het dobbelsteen object heeft een contract met de class Observable die op zijn beurt weer communiceert met Observers. Zodra ik setChanged() aanroep wil dat zeggen dat de views op mijn model een update moeten krijgen, maar hij doet niks... rara wie kan mij vertellen waarom dit stukje niet werkt.
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
64
| /*
A basic extension of the com.sun.java.swing.JApplet class
*/
import com.sun.java.swing.*;
import java.awt.*;
public class JApplet1 extends JApplet
{
private ObservableDobbelsteen dobbelsteen = new ObservableDobbelsteen();
public void init()
{
// Take out this line if you don't use symantec.itools.net.RelativeURL or symantec.itools.awt.util.StatusScroller
symantec.itools.lang.Context.setApplet(this);
// This line prevents the "Swing: checked access to system event queue" message seen in some browsers.
getRootPane().putClientProperty("defeatSystemEventQueueCheck", Boolean.TRUE);
// This code is automatically generated by Visual Cafe when you add
// components to the visual environment. It instantiates and initializes
// the components. To modify the code, only use code syntax that matches
// what Visual Cafe can generate, or Visual Cafe may be unable to back
// parse your Java file into its visual environment.
//{{INIT_CONTROLS
getContentPane().setLayout(null);
setSize(426,266);
buttonDobbel.setLabel("Dobbel");
getContentPane().add(buttonDobbel);
buttonDobbel.setBackground(java.awt.Color.lightGray);
buttonDobbel.setBounds(288,36,80,38);
getContentPane().add(obsLabelOgen);
obsLabelOgen.setBounds(60,156,174,39);
getContentPane().add(obsTextFieldOgen);
obsTextFieldOgen.setBounds(36,36,163,44);
//}}
//{{REGISTER_LISTENERS
SymAction lSymAction = new SymAction();
buttonDobbel.addActionListener(lSymAction);
//}}
}
//{{DECLARE_CONTROLS
java.awt.Button buttonDobbel = new java.awt.Button();
java.awt.Label obsLabelOgen = new obsLabel(); //java.awt.Label();
java.awt.TextField obsTextFieldOgen = new obsTextField(); //java.awt.TextField();
//}}
class SymAction implements java.awt.event.ActionListener
{
public void actionPerformed(java.awt.event.ActionEvent event)
{
Object object = event.getSource();
if (object == buttonDobbel)
buttonDobbel_ActionPerformed(event);
}
}
void buttonDobbel_ActionPerformed(java.awt.event.ActionEvent event)
{
dobbelsteen.gooi();
}
} |
Listing ObservableDobbelsteen
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| import java.util.*;
public class ObservableDobbelsteen extends Observable
{
private int ogen;
public int getOgen()
{
return ogen;
}
public void gooi()
{
ogen = (int) (6 * Math.random() + 1);
setChanged();
notifyObservers();
}
} |
Listing obsTexfield
code:
1
2
3
4
5
6
7
8
9
10
11
12
| import java.util.*;
import java.awt.*;
public class obsTextField extends TextField
implements Observer
{
public void update(Observable obs, Object arg)
{
ObservableDobbelsteen dobbelsteen = (ObservableDobbelsteen) obs;
setText(" " + dobbelsteen.getOgen());
}
} |
Listing obsLabel
code:
1
2
3
4
5
6
7
8
9
10
11
12
| import java.util.*;
import java.awt.*;
public class obsLabel extends Label
implements Observer
{
public void update(Observable obs, Object arg)
{
ObservableDobbelsteen dobbelsteen = (ObservableDobbelsteen) obs;
setText(" " + dobbelsteen.getOgen());
}
} |
What it does
Zodra ik op de knop Dobbel druk vangt de Event Handler dat voor me af en roept uiteindelijk dobblsteen.gooi() aan. De gaat een random getal genereren en vult vult het attribuut ogen met de gevonden waarde... het dobbelsteen object heeft een contract met de class Observable die op zijn beurt weer communiceert met Observers. Zodra ik setChanged() aanroep wil dat zeggen dat de views op mijn model een update moeten krijgen, maar hij doet niks... rara wie kan mij vertellen waarom dit stukje niet werkt.