RGBControl.java
package thread;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
public class RGBControl extends JFrame implements ActionListener{
private JSlider redSlider, greenSlider, blueSlider;
private JTextField rgbcode;
private JButton create;
private JLabel rgbtext;
private JLabel l_red, l_green, l_blue;
private Boolean clicked = false;
public static int VALUE_RED = 255;
public static int VALUE_GREEN = 255;
public static int VALUE_BLUE = 255;
static JPanel p;
public RGBControl(){
Container mainc = this.getContentPane();
p = new JPanel();
Border border = BorderFactory.createLoweredBevelBorder();
Border btitle = BorderFactory.createTitledBorder(border, "RGB");
p.setBorder(btitle);
p.setLayout(new FlowLayout(FlowLayout.LEFT));
RGBListener myRGBListener = new RGBListener();
redSlider = new JSlider(SwingConstants.HORIZONTAL,0,255,VALUE_RED);
l_red = new JLabel("<html><body bgcolor=white>" + String.valueOf(VALUE_RED) + "</body></html>");
greenSlider = new JSlider(SwingConstants.HORIZONTAL,0,255,VALUE_GREEN);
l_green = new JLabel("<html><body bgcolor=white>" + String.valueOf(VALUE_GREEN) + "</body></html>");
blueSlider = new JSlider(SwingConstants.HORIZONTAL,0,255,VALUE_BLUE);
l_blue = new JLabel("<html><body bgcolor=white>" + String.valueOf(VALUE_BLUE) + "</body></html>");
redSlider.addChangeListener(myRGBListener);
greenSlider.addChangeListener(myRGBListener);
blueSlider.addChangeListener(myRGBListener);
p.add(redSlider); p.add(l_red);
p.add(greenSlider); p.add(l_green);
p.add(blueSlider); p.add(l_blue);
rgbtext = new JLabel("<html><body bgcolor=white>RGB Code: </body></html>");
rgbcode = new JTextField(8);
create = new JButton("<html><font color=red>Create</font></html>");
create.addActionListener(this);
p.add(rgbtext); p.add(rgbcode); p.add(create);
mainc.add(p);
}
private class RGBListener implements ChangeListener{
public void stateChanged(ChangeEvent event)
{
if (clicked == false){
VALUE_RED = redSlider.getValue();
VALUE_GREEN = greenSlider.getValue();
VALUE_BLUE = blueSlider.getValue();
l_red.setText("<html><body bgcolor=white>" + String.valueOf(VALUE_RED) + "</body></html>");
l_green.setText("<html><body bgcolor=white>" + String.valueOf(VALUE_GREEN) + "</body></html>");
l_blue.setText("<html><body bgcolor=white>" + String.valueOf(VALUE_BLUE) + "</body></html>");
Long rgbvalue;
rgbvalue = 65536 * Long.valueOf(String.valueOf(VALUE_BLUE));
rgbvalue = rgbvalue + 256 * Long.valueOf(String.valueOf(VALUE_GREEN));
rgbvalue = rgbvalue + Long.valueOf(String.valueOf(VALUE_RED));
rgbcode.setText(String.valueOf(rgbvalue));
}
}
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==create){
String test;
Long temp;
Long rgbvalue;
clicked = true;
test = rgbcode.getText();
if (test.equals("null") || test.equals("")){
rgbvalue = new Long(0);
}else{
rgbvalue = Long.valueOf(test);
}
VALUE_BLUE = Integer.parseInt(String.valueOf(rgbvalue / 65536));
temp = rgbvalue % 65536;
VALUE_GREEN = Integer.parseInt(String.valueOf(temp / 256));
temp = temp % 256;
VALUE_RED = Integer.parseInt(String.valueOf(temp));
redSlider.setValue(VALUE_RED);
greenSlider.setValue(VALUE_GREEN);
blueSlider.setValue(VALUE_BLUE);
l_red.setText("<html><body bgcolor=white>" + String.valueOf(VALUE_RED) + "</body></html>");
l_green.setText("<html><body bgcolor=white>" + String.valueOf(VALUE_GREEN) + "</body></html>");
l_blue.setText("<html><body bgcolor=white>" + String.valueOf(VALUE_BLUE) + "</body></html>");
clicked = false;
}
}
}
GetColor.java
package thread;
import java.awt.*;
import javax.swing.*;
public class GetColor implements Runnable{
private JPanel panel;
private int color_red, color_green, color_blue;
public GetColor(JPanel p){
panel = p;
}
public void run(){
while(1==1){
try{
RGBControl myrgbcreater = new RGBControl();
color_red = myrgbcreater.VALUE_RED;
color_green = myrgbcreater.VALUE_GREEN;
color_blue = myrgbcreater.VALUE_BLUE;
panel.setBackground(new Color(color_red, color_green, color_blue));
}
catch(Exception e){}
}
}
}
RGBCreater.java
package thread;
import javax.swing.*;
public class RGBCreater extends JFrame{
public static void main(String args[]){
RGBControl myrgbcreater = new RGBControl();
myrgbcreater.setTitle("RGB Creater");
myrgbcreater.setSize(285, 188);
myrgbcreater.setResizable(false);
myrgbcreater.setLocationRelativeTo(null);
myrgbcreater.setVisible(true);
myrgbcreater.setDefaultCloseOperation(EXIT_ON_CLOSE);
GetColor getcolor = new GetColor(myrgbcreater.p);
Thread t1 = new Thread(getcolor);
t1.start();
}
}