Color Slider

Download

.jar file
source 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);
        }
    }
}

Home | Code | Learn
© 2007-2008 ProgLogic, all rights reserved. | ProgLogic.com is created by Stijn Strickx. | e-mail