/* ColorPicker v1.0 by Toh Lik Khoong Last revised 05/03/2001 dedicated to L.J.W Please contact me at lktoh@navsurf.com for any comments or suggestions The source code is strictly for educational purposes and cannot be modified or used without the express permission of the author Visit http://navsurf.com for the latest version and other useful applets */ /* sample applet for colorpicker */ import java.applet.Applet; import java.awt.image.MemoryImageSource; import java.awt.image.PixelGrabber; import java.awt.*; import java.awt.event.*; public class colorpicker extends Applet implements MouseListener, MouseMotionListener, ActionListener{ CanvasHS chs = new CanvasHS(); CanvasB cb = new CanvasB(); TextField tf_r = new TextField("127", 2); TextField tf_g = new TextField("127", 2); TextField tf_b = new TextField("127", 2); TextField tf_hc = new TextField("808080", 6); Button submit_btn = new Button("Display Color"); Canvas cc = new Canvas(); public void init(){ setLayout(new BorderLayout()); setBackground(Color.white); Panel p_canvas = new Panel(new FlowLayout(FlowLayout.CENTER, 20, 20)); Panel p_field = new Panel(new FlowLayout(FlowLayout.CENTER, 20, 20)); chs.addMouseMotionListener(this); chs.addMouseListener(this); cb.addMouseMotionListener(this); cb.addMouseListener(this); p_canvas.add(chs); p_canvas.add(cb); cc.resize(50, 50); cc.setBackground(Color.gray); submit_btn.addActionListener(this); add(p_canvas, "North"); p_field.add(new Label("Red:")); p_field.add(tf_r); p_field.add(new Label("Green:")); p_field.add(tf_g); p_field.add(new Label("Blue:")); p_field.add(tf_b); p_field.add(new Label("Hex Code:")); p_field.add(tf_hc); p_field.add(cc); p_field.add(submit_btn); add(p_field, "Center"); } public void mouseClicked( MouseEvent e ){ processEvent(e); } public void mouseEntered( MouseEvent e ){} public void mouseExited( MouseEvent e ){} public void mouseReleased( MouseEvent e ){} public void mousePressed( MouseEvent e ){} public void mouseDragged( MouseEvent e ){ processEvent(e); } public void mouseMoved( MouseEvent e ){} private void processEvent( MouseEvent e){ if (e.getComponent() instanceof CanvasHS){ cb.refresh(chs.getColorAt(e.getX(), e.getY())); cb.repaint(); Color cur_color = cb.getColor(); tf_r.setText(Integer.toString(cur_color.getRed())); tf_g.setText(Integer.toString(cur_color.getGreen())); tf_b.setText(Integer.toString(cur_color.getBlue())); tf_hc.setText(Integer.toHexString(cur_color.getRGB() & 0xFFFFFF).toUpperCase()); cc.setBackground(cur_color); } if (e.getComponent() instanceof CanvasB){ Color cur_color = cb.getColorAt(e.getX(), e.getY()); tf_r.setText(Integer.toString(cur_color.getRed())); tf_g.setText(Integer.toString(cur_color.getGreen())); tf_b.setText(Integer.toString(cur_color.getBlue())); tf_hc.setText(Integer.toHexString(cur_color.getRGB() & 0xFFFFFF).toUpperCase()); cb.setCursor(e.getY()); cb.repaint(); cc.setBackground(cur_color); } } public void actionPerformed( ActionEvent e ){ if (e.getActionCommand().equals("Display Color")){ try{ if (Integer.parseInt(tf_r.getText()) > 255){ tf_r.setText("255"); } if (Integer.parseInt(tf_g.getText()) > 255){ tf_g.setText("255"); } if (Integer.parseInt(tf_b.getText()) > 255){ tf_b.setText("255"); } Color cur_color = new Color(Integer.parseInt(tf_r.getText()), Integer.parseInt(tf_g.getText()), Integer.parseInt(tf_b.getText())); tf_hc.setText(Integer.toHexString(cur_color.getRGB() & 0xFFFFFF).toUpperCase()); cb.setCursor(cb.size().height/2); cb.refresh(cur_color); cc.setBackground(cur_color); showStatus(new String()); }catch(java.lang.NumberFormatException nfe){ showStatus("Wrong number format entered"); } } } public void paint(Graphics g){} }