Color Slider
Download
.jar filesource code
Java Code
Main.java
package colorslider; /** * Main.java * Created by Stijn Strickx on Feb. 27 2008 * Copyright 2008 Stijn Strickx, All rights reserved */ public class Main { public static void main(String[] args){ new ColorWindow(); } }
ColorWindow.java
package colorslider; import java.awt.Container; import java.awt.FlowLayout; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JPanel; /** * ColorWindow.java * Created by Stijn Strickx on Feb. 27 2008 * Copyright 2008 Stijn Strickx, All rights reserved */ public class ColorWindow { ColorPanel colorSq; private JPanel slidePanel; public ColorWindow(){ Slider slide1 = new Slider("Red"); Slider slide2 = new Slider("Green"); Slider slide3 = new Slider("Blue"); colorSq = new ColorPanel(slide1, slide2, slide3); slidePanel = new JPanel(); slideComplete(slide1); slideComplete(slide2); slideComplete(slide3); slidePanel.setLayout(new GridLayout (0,1)); JFrame window = new JFrame("ColorPanel (c) Stijn Strickx"); Container cp = window.getContentPane(); cp.add(slidePanel); cp.add(colorSq); cp.setLayout(new FlowLayout()); window.pack(); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setVisible(true); } public void slideComplete(Slider slide){ slide.addChangeListener(colorSq); slidePanel.add(slide); } }
Slider.java
package colorslider; import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JSlider; import javax.swing.border.TitledBorder; /** * Slider.java * Created by Stijn Strickx on Feb. 27 2008 * Copyright 2008 Stijn Strickx, All rights reserved */ public class Slider extends JPanel { private JSlider slider; private JLabel number; public Slider(String name){ slider = new JSlider(); number = new JLabel("" + 50/100.0 + "0"); slider.setMajorTickSpacing(10); slider.setMinorTickSpacing(5); add(slider); add(number); TitledBorder border = BorderFactory.createTitledBorder(name); setBorder(border); } void addChangeListener(ColorPanel colorSq) { slider.addChangeListener(colorSq); } public JLabel getNumberLabel(){ return number; } public int getValue(){ return slider.getValue(); } }
ColorPanel.java
package colorslider; import java.awt.Color; import java.awt.Dimension; import javax.swing.JPanel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; /** * ColorPanel.java * Created by Stijn Strickx on Feb. 27 2008 * Copyright 2008 Stijn Strickx, All rights reserved */ class ColorPanel extends JPanel implements ChangeListener { private Color color; private Slider slide1; private Slider slide2; private Slider slide3; private float value1; private float value2; private float value3; public ColorPanel(Slider slide1, Slider slide2, Slider slide3) { color = new Color((float)0.5,(float)0.5,(float)0.5); setBackground(color); setOpaque(true); setPreferredSize(new Dimension(100,100)); this.slide1 = slide1; this.slide2 = slide2; this.slide3 = slide3; } public void stateChanged(ChangeEvent c) { value1 = (float)slide1.getValue()/100; value2 = (float)slide2.getValue()/100; value3 = (float)slide3.getValue()/100; Color color2 = new Color(value1,value2,value3); slide1.getNumberLabel().setText(valToString(value1)); slide2.getNumberLabel().setText(valToString(value2)); slide3.getNumberLabel().setText(valToString(value3)); setBackground(color2); } public String valToString(float value){ if((value*100)%10 < 1){ return ("" + value + "0"); } else{ return ("" + value); } } }