通过JSlider控制的画板调色窗口

package SwingPacket;
import javax.swing.*;
import javax.swing.border.BevelBorder;
import javax.swing.border.LineBorder;
import javax.swing.border.SoftBevelBorder;
import javax.swing.border.TitledBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import java.awt.*;
public class TiaoSeBan extends JFrame {
         int r=0,g=0,b=0,a=0;
	     JPanel jpane1=new JPanel();
	     JPanel jpane2=new JPanel();
	     JPanel jpane3=new JPanel();
         JLabel label1=new JLabel();
        /* JLabel label2=new JLabel();
         JLabel label3=new JLabel();
         JLabel label4=new JLabel();
         */
         JProgressBar progressr=new JProgressBar();
         JProgressBar progressg=new JProgressBar();
         JProgressBar progressb=new JProgressBar();
         JProgressBar progressa=new JProgressBar();
	     ColorCanvas canvas=new ColorCanvas();
	     //ColorCanvas canvas;
	     TitledBorder titleborder1=new TitledBorder(
	    		 BorderFactory.createEtchedBorder(Color.white, new Color(139,139,139)),"red" );
	     TitledBorder titleborder2=new TitledBorder(
	    		 BorderFactory.createEtchedBorder(Color.white, new Color(139,139,139)),"green");
	     TitledBorder titleborder3=new TitledBorder(
	    		 BorderFactory.createEtchedBorder(Color.white, new Color(139,139,139)),"blue");
	     TitledBorder titleborder4=new TitledBorder(
	    		 BorderFactory.createEtchedBorder(Color.white, new Color(139,139,139)),"alpha");
	     
         JSlider sliderr=new JSlider();
         JSlider sliderg=new JSlider();
         JSlider sliderb=new JSlider();
         JSlider slidera=new JSlider();
         BorderLayout border1=new BorderLayout();
         GridLayout flow=new GridLayout();
         GridLayout progress1=new GridLayout(4,1);
         public TiaoSeBan(){
        	 init();
         }
         public void init(){
        	 this.setLayout(border1);
        	 this.setSize(new Dimension(800,600));
        	 this.setTitle("调色板(Create Color)");
        	// canvas=new ColorCanvas(r,g,b,a);
        	 jpane1.setBounds(new Rectangle(100,50,500,250));
        	 canvas.setBounds(new Rectangle(100,50,500,250));
        	 jpane1.setBorder(new SoftBevelBorder(SoftBevelBorder.RAISED));
        	 progressr.setStringPainted(true);
        	 progressr.setBorderPainted(true);
        	 progressr.setSize(new Dimension(40,10));
        	// progressr.setIndeterminate(true);
        	 progressr.setBorder(new TitledBorder("red百分比(%)"));
        	 
        	 progressg.setStringPainted(true);
        	 progressg.setBorderPainted(true);
        	 progressg.setSize(new Dimension(40,10));
        	 //progressg.setIndeterminate(true);
        	 progressg.setBorder(new TitledBorder("green百分比(%)"));
        	 progressb.setStringPainted(true);
        	 progressb.setBorderPainted(true);
        	 progressb.setSize(new Dimension(40,10));
        	// progressb.setIndeterminate(true);
        	 progressb.setBorder(new TitledBorder("blue百分比(%)"));
        	 progressa.setStringPainted(true);
        	 progressa.setBorderPainted(true);
        	 progressa.setSize(new Dimension(40,10));
        	 //progressa.setIndeterminate(true);
        	 progressa.setBorder(new TitledBorder("alpha百分比(%)"));
        	 jpane3.setBounds(new Rectangle(100,50,200,50));
        	 jpane3.setLayout(progress1);
        	 jpane3.add(progressr);
        	 jpane3.add(progressg);
        	 jpane3.add(progressb);
        	 jpane3.add(progressa);
        	 jpane1.add(jpane3);
        	// canvas.setBackground(new Color(r,g,b,a));
        	 //jpane1.add(canvas);
        	 //jpane1.setBackground(new Color(255,255,255,255));
        	// jpane1.setBounds(new Rectangle(100,50,600,250));
        	 //jpane1.setVisible(true);
        	/* label1.setText("红色");
        	 label2.setText("绿色");
        	 label3.setText("蓝色");
        	 label4.setText("alpha");*/
        	 label1.setText("调色板演示屏幕");
        	 label1.setHorizontalAlignment(SwingConstants.CENTER);
        	 sliderr.setPaintLabels(true);
        	 sliderr.setPaintTicks(true);
        	 sliderr.setPaintTrack(true);
        	 sliderr.setMinimum(0);
        	 sliderr.setMaximum(255);
        	 sliderr.setValue(0);
        	 sliderr.setBorder(titleborder1);
        	 sliderr.addChangeListener(
        			 new ChangeListener(){

						@Override
						public void stateChanged(ChangeEvent arg0) {
							// TODO Auto-generated method stub
							r=sliderr.getValue();
							canvas.setBackground(new Color(r,g,b,a));
							canvas.repaint();
							progressr.setValue((int)(sliderr.getValue()*100/255));
						}
        				 
        			 });
        	 sliderg.setPaintLabels(true);
        	 sliderg.setPaintTicks(true);
        	 sliderg.setPaintTrack(true);
        	 sliderg.setMinimum(0);
        	 sliderg.setMaximum(255);
        	 sliderg.setValue(0);
        	 sliderg.setBorder(titleborder2);
        	 sliderg.addChangeListener(
        			 new ChangeListener(){

						@Override
						public void stateChanged(ChangeEvent arg0) {
							// TODO Auto-generated method stub
							g=sliderg.getValue();
							canvas.setBackground(new Color(r,g,b,a));
							canvas.repaint();
							progressg.setValue((int)(sliderg.getValue()*100/255));
						}
        				 
        			 });
        	 sliderb.setPaintLabels(true);
        	 sliderb.setPaintTicks(true);
        	 sliderb.setPaintTrack(true);
        	 sliderb.setMinimum(0);
        	 sliderb.setMaximum(255);
        	 sliderb.setValue(0);
        	 sliderb.setBorder(titleborder3);
        	 sliderb.addChangeListener(
        			 new ChangeListener(){
        		 public void stateChanged(ChangeEvent e){
        			b=sliderb.getValue();
        			canvas.setBackground(new Color(r,g,b,a));
        			canvas.repaint();
        			progressb.setValue((int)(sliderb.getValue()*100/255));
        		 }

        	 });
        	 slidera.setPaintLabels(true);
        	 slidera.setPaintTicks(true);
        	 slidera.setPaintTrack(true);
        	 slidera.setMinimum(0);
        	 slidera.setMaximum(255);
        	 slidera.setValue(0);
        	 slidera.setBorder(titleborder4);
        	 slidera.addChangeListener(
        			 new ChangeListener(){
        				 public void stateChanged(ChangeEvent e){
        					 a=slidera.getValue();
        					 canvas.setBackground(new Color(r,g,b,a));
        					 canvas.repaint();
        					 progressa.setValue((int)(slidera.getValue()*100/255));
        				 }
        			 
        			 });
        	 
        	 jpane1.add(canvas);
        	 //canvas.setBackground(new Color(r,g,b,a));
        	 jpane1.add(label1);
        	 jpane2.setBounds(new Rectangle(100,350,500,250));
        	 flow.setRows(2);
        	 flow.setColumns(2);
        	 flow.setHgap(50);
        	 flow.setVgap(50);
        	 jpane2.setLayout(flow);       
        	 jpane2.setToolTipText("控制台");
        	 this.getContentPane().add(jpane1,BorderLayout.NORTH);
        	// jpane2.add(label1);
        	 jpane2.add(sliderr);
        	 //jpane2.add(label2);
        	 jpane2.add(sliderg);
        	// jpane2.add(label3);
        	 jpane2.add(sliderb);
        	// jpane2.add(label4);
        	 jpane2.add(slidera);
        	 this.getContentPane().add(jpane2,BorderLayout.SOUTH);
        	 
         }
	public static void main(String[] args) {
		// TODO Auto-generated method stub
         TiaoSeBan t=new TiaoSeBan();
         t.pack();
         t.setVisible(true);
	}

}
class ColorCanvas extends Canvas{
	public ColorCanvas(){	
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值