Hoi, ik moet voor school een programma schrijven wat met bepaalde kleursliders werkt. Hier stukje source:
Klasse KleurApplet:
Klasse kleur:
update stukje uit klasse RGBpaneel :
In de klasse Kleur staan Roodval etc allemaal netjes inc Get methoden. Wanneer de kleur veranderd wordt er een setchanged en notifyobservers aangeroepen, dit gaat ook goed. Echter, hoe kan ik nu uit RGB paneel de getGroenval aanroepen, zoals ik het nu heb werkt het niet. Ik heb geprobeerd een nieuwe instantie van Kleur aan te maken binnen RGBpaneel maar dan zet ie vrolijk de waardes weer op 127... iemand een idee wat ik fout doe?
Klasse KleurApplet:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| public class KleurApplet extends Applet { Kleur k; KleurCanvas kc; RGBInvoerPaneel rgbip; HSBInvoerPaneel hsbip; public void init() { // NB: mwt klassieke awt, niet met behulp van Swing-componenten. setLayout(new BorderLayout()); k = new Kleur(); kc = new KleurCanvas(); add(kc, "Center"); rgbip = new RGBInvoerPaneel(k); k.addObserver(rgbip); add(rgbip, "East"); hsbip = new HSBInvoerPaneel(k); //k.addObserver(hsbip); add(hsbip, "West"); setSize(600,340); setVisible(true); } } |
Klasse kleur:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| public class Kleur extends Observable implements NumberListener{ private int roodval; private int groenval; private int blauwval; public Kleur() { roodval = 127; groenval = 127; blauwval = 127; hsbvalues = Color.RGBtoHSB(roodval, groenval, blauwval, hsbvalues); // setBackground(Color.white); // setSize(360, 340); } public void numberChanged(String naam, double v) { if ( naam.equals("Rood") ) { roodval = (int)v; // harde cast!! v loopt van 0 tot 255 met 0 decimalen! .... setChanged(); notifyObservers(); |
update stukje uit klasse RGBpaneel :
Java:
1
2
3
4
5
6
7
8
| class RGBInvoerPaneel extends Panel implements Observer ... public void update(Observable obs, Object obj) { System.out.println(k.getBlauwval()); System.out.println(k.getRoodval()); System.out.println(k.getGroenval()); |
In de klasse Kleur staan Roodval etc allemaal netjes inc Get methoden. Wanneer de kleur veranderd wordt er een setchanged en notifyobservers aangeroepen, dit gaat ook goed. Echter, hoe kan ik nu uit RGB paneel de getGroenval aanroepen, zoals ik het nu heb werkt het niet. Ik heb geprobeerd een nieuwe instantie van Kleur aan te maken binnen RGBpaneel maar dan zet ie vrolijk de waardes weer op 127... iemand een idee wat ik fout doe?