import java.awt.*; import java.awt.event.*; import java.applet.*; public class week4a extends Applet implements ActionListener, ItemListener { final String SPATIES = " "; TextField redText = new TextField(""), greenText = new TextField(""), blueText = new TextField(""); Button inverteerKnop = new Button("inverteerknop"), toonKnop = new Button("toonknop"); CheckboxGroup keuzeGroep = new CheckboxGroup(); Checkbox keuze1Check = new Checkbox("methode 1", keuzeGroep, true), keuze2Check = new Checkbox("methode 2", keuzeGroep, false); List redList = new List(17, false), greenList = new List(17, false), blueList = new List(17, false); Label roodLab = new Label("", Label.CENTER), greenLab = new Label("", Label.CENTER), blueLab = new Label("", Label.CENTER), rgbLab = new Label("", Label.CENTER), textRood = new Label("Rood"), textGroen = new Label("Groen"), textBlauw = new Label("Blauw"); public void init() { setLayout(new GridLayout(11, 2)); //1e layout regel add(keuze1Check); keuze1Check.addItemListener(this); add(new Label(" ")); //2e layout regel add(new Label("Rood: 0.0 - 1.0")); add(redText); //3e layout regel add(new Label("Groen: 0.0 - 1.0")); add(greenText); //4e layout regel add(new Label("Blauw: 0.0 - 1.0")); add(blueText); //5e layout regel add(keuze2Check); keuze2Check.addItemListener(this); add(new Label(" ")); //6e layout regel add(textRood); add(redList); //7e layout regel add(textGroen); add(greenList); //8e layout regel add(textBlauw); add(blueList); //9e layout regel add(roodLab); add(greenLab); //10e layout regel add(blueLab); add(rgbLab); //11e layout regel add(toonKnop); toonKnop.addActionListener(this); add(inverteerKnop); inverteerKnop.addActionListener(this); //opzetten listboxen for(int i=0;i<256;i+=16) { redList.addItem(Integer.toString(i)); greenList.addItem(Integer.toString(i)); blueList.addItem(Integer.toString(i)); } redList.addItem(Integer.toString(255)); greenList.addItem(Integer.toString(255)); blueList.addItem(Integer.toString(255)); //opzetten labels roodLab.setBackground(new Color(0.5f, 0.0f, 0.0f)); greenLab.setBackground(new Color(0.0f, 0.5f, 0.0f)); blueLab.setBackground(new Color(0.0f, 0.0f, 0.5f)); rgbLab.setBackground(new Color(0.5f, 0.5f, 0.5f)); //instellen interface redList.hide(); greenList.hide(); blueList.hide(); redText.setText("0.5"); greenText.setText("0.5"); blueText.setText("0.5"); redList.select(8); greenList.select(8); blueList.select(8); } public void itemStateChanged(ItemEvent gebeurtenis) { if (gebeurtenis.getSource() == keuze1Check) { redList.hide(); greenList.hide(); blueList.hide(); redText.show(); greenText.show(); blueText.show(); } else if (gebeurtenis.getSource() == keuze2Check) { redList.show(); greenList.show(); blueList.show(); redText.hide(); greenText.hide(); blueText.hide(); } } public void actionPerformed(ActionEvent gebeurtenis) { //er wordt op de toon- of inverteerknop gedrukt if (keuze1Check.getState()) { float red, green, blue; red = Float.valueOf(redText.getText()).floatValue(); green = Float.valueOf(greenText.getText()).floatValue(); blue = Float.valueOf(blueText.getText()).floatValue(); if (gebeurtenis.getSource() == inverteerKnop) { red = 1.0f - red; green = 1.0f - green; blue = 1.0f - blue; } roodLab.setBackground(new Color(red, 0 ,0)); greenLab.setBackground(new Color(0, green, 0)); blueLab.setBackground(new Color(0, 0, blue)); rgbLab.setBackground(new Color(red, green, blue)); //vul aan } else if (keuze2Check.getState()) { int r, g, b; r = Integer.parseInt(redList.getSelectedItem()); g = Integer.parseInt(greenList.getSelectedItem()); b = Integer.parseInt(blueList.getSelectedItem()); if (gebeurtenis.getSource() == inverteerKnop) { r = 255 - r; g = 255 - g; b = 255 - b; } roodLab.setBackground(new Color(r, 0, 0)); greenLab.setBackground(new Color(0, g, 0)); blueLab.setBackground(new Color(0, 0, b)); rgbLab.setBackground(new Color(r, g, b)); } } }