package logo.ui; import java.awt.Panel; import java.awt.Scrollbar; import java.awt.Color; import java.awt.Label; import java.awt.GridBagLayout; import java.awt.BorderLayout; import java.awt.GridBagConstraints; import java.awt.Event; import java.awt.Graphics; import java.awt.Insets; import java.awt.Dimension; public class ColorChooser extends Panel { ColorChooserSample sample = new ColorChooserSample(); ColorScroller red = new ColorScroller("Red: 0",new Color(255,0,0)); ColorScroller green = new ColorScroller("Green: 0",new Color(0,255,0)); ColorScroller blue = new ColorScroller("Blue: 0",new Color(0,0,255)); public ColorChooser() { GridBagLayout gridBag = new GridBagLayout(); GridBagConstraints gbc = new GridBagConstraints(); setLayout(gridBag); gbc.fill=GridBagConstraints.BOTH; gbc.weightx=1.0; gbc.weighty=1.0; gbc.gridheight=3; gbc.gridx=0; gbc.gridy=0; gridBag.setConstraints(sample,gbc); gbc.fill=GridBagConstraints.HORIZONTAL; gbc.gridheight=1; gbc.gridx=1; gbc.gridy=0; gridBag.setConstraints(red,gbc); gbc.gridx=1; gbc.gridy=1; gridBag.setConstraints(green,gbc); gbc.gridx=1; gbc.gridy=2; gridBag.setConstraints(blue,gbc); add(sample); add(red); add(green); add(blue); } public Color getColor() { return new Color(red.getValue(),green.getValue(),blue.getValue()); } public void setColor(Color c) { red.setValue(c.getRed()); green.setValue(c.getGreen()); blue.setValue(c.getBlue()); changeColor(); } public void changeColor() { sample.setColor(getColor()); sample.repaint(); } public boolean handleEvent(Event e) { switch(e.id) { case Event.SCROLL_ABSOLUTE: case Event.SCROLL_LINE_DOWN: case Event.SCROLL_LINE_UP: case Event.SCROLL_PAGE_DOWN: case Event.SCROLL_PAGE_UP: changeColor(); return true; } return false; } } class ColorChooserSample extends Panel { Color myColor=Color.black; public void setColor(Color c) { myColor = c; } public void paint(Graphics g) { g.setColor(myColor); g.fillRect(0,0,size().width,size().height); } } class ColorScroller extends Scrollbar { // Scrollbar scroller; public ColorScroller(String s, Color c) { super(Scrollbar.HORIZONTAL); setBackground(c); setValues(0,15,0,255); } }