调色器

 

 

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();
	}
	
}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值