Home Tutorial Java Swing JSlider with RGB Colors

 
 

Share on Google+Share on Google+
JSlider with RGB Colors
Posted on: September 19, 2012 at 12:00 AM
Advertisement
In this section, you will learn how to create sliders to show RGB colors.

JSlider with RGB Colors

In this section, you will learn how to create sliders to show RGB colors.

In this example, we  have created three horizontal sliders, first one as red, the second one as green and the third one as blue. It lets the user to set the red, green, and blue levels in a color by manipulating sliders.The JPanel component is used in a code to allow the user to specify the drawing color.

Example:

import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.plaf.basic.*;

class Slider extends JSlider{
private String type;
private RangeSlider ui;

public Slider(int min, int max, String type){
super(min, max);
this.type = type;
}
public void updateUI(){
ui = new RangeSlider(this);
setUI(ui);
updateLabelUIs();
}
public RangeSlider getUI(){
return ui;
}
public String getType(){
return type;
}
}
class RangeSlider extends BasicSliderUI{
public Color[] gradient = new Color[256];
public RangeSlider(JSlider B){
super(B);
}
public void updateGradient(int othercolor, int othercolor2){
if ("Red".equals(((Slider) slider).getType())){
for(int i = 0; i < gradient.length; i++){
gradient[i] = new Color(i, othercolor, othercolor2);
}
}
if ("Green".equals(((Slider) slider).getType())){
for (int i = 0; i < gradient.length; i++){
gradient[i] = new Color(othercolor, i, othercolor2);
}
}
if ("Blue".equals(((Slider) slider).getType())){
for (int i = 0; i < gradient.length; i++){
gradient[i] = new Color(othercolor, othercolor2, i);
}
}
slider.repaint();
}
}
public class ColorSlider extends JFrame implements ChangeListener{
Slider redSlider = new Slider(0, 255, "Red");
Slider greenSlider = new Slider(0, 255, "Green");
Slider blueSlider = new Slider(0, 255, "Blue");
JPanel colourDisplay = new JPanel();

public ColorSlider(){
setVisible(true);
setSize(300, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new GridLayout(4, 1));

redSlider.addChangeListener(this);
greenSlider.addChangeListener(this);
blueSlider.addChangeListener(this);

add(redSlider);
add(greenSlider);
add(blueSlider);
add(colourDisplay);
}
public void stateChanged(ChangeEvent e){
int red = redSlider.getValue();
int green = greenSlider.getValue();
int blue = blueSlider.getValue();

redSlider.getUI().updateGradient(green, blue);
greenSlider.getUI().updateGradient(red, blue);
blueSlider.getUI().updateGradient(red, green);

this.colourDisplay.setBackground(new Color(red, green, blue));
}
public static void main(String[] args){
new ColorSlider();
}
}

Output:

Advertisement

Related Tags for JSlider with RGB Colors:


Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.

Posted on: September 19, 2012

Recommend the tutorial

Advertisements Advertisements
 

 

 

DMCA.com