我在做一个Color Slide (颜色调节)的应用程序,就是移动red,green,blue三个Slider组件的时候,下面的颜色显示面板能够自动显示调节后的颜色,这样一种功能,大家帮帮忙啊,我已经做了很久了

解决方案 »

  1.   

    Color color = new Color(red.getValue(), green.getValue(), blue.getValue());
    panel.setBackground(color);
      

  2.   

    那请问这个Slider的监听器怎么实现啊
      

  3.   

    已经解决,谢谢大家。
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.util.Hashtable;public class ColorSlide extends JFrame implements ChangeListener{ 
            JLabel jl1;
    JLabel jl2;
    JLabel jl3;

    JLabel ja;
    JLabel jb;
    JLabel jc;
    JLabel jd;
    JLabel je;
    JLabel jf;

    Hashtable<Integer, JLabel> table;

            JSlider js1;
        JSlider js2;
        JSlider js3;
        
        JPanel redPanel;
            JPanel greenPanel;
            JPanel bluePanel;
            JPanel displayPanel;      public ColorSlide (String s){

    super(s);

    jl1=new JLabel("red:");
    jl2=new JLabel("green:");
    jl3=new JLabel("blue:");

    ja=new JLabel("0");
    jb=new JLabel("50");
    jc=new JLabel("100");
    jd=new JLabel("150");
    je=new JLabel("200");
    jf=new JLabel("250");

    js1=new JSlider(0,250,0);
        js2=new JSlider(0,250,0);
        js3=new JSlider(0,250,0);
        
    table = new Hashtable<Integer, JLabel>();
    table.put(0,ja);
            table.put(50,jb);
            table.put(100,jc);
            table.put(150,jd);
            table.put(200,je);
            table.put(250,jf);
            
            js1.setLabelTable(table);
            js1.setMajorTickSpacing(10);
            js1.setPaintLabels(true);
            js1.setPaintTicks(true);
            
            js2.setLabelTable(table);
            js2.setMajorTickSpacing(10);
            js2.setPaintLabels(true);
            js2.setPaintTicks(true);
            
            js3.setLabelTable(table);
            js3.setMajorTickSpacing(10);
            js3.setPaintLabels(true);
            js3.setPaintTicks(true);
            
            redPanel = new JPanel(new GridLayout(0,1));
            greenPanel = new JPanel(new GridLayout(0,1));
            bluePanel = new JPanel(new GridLayout(0,1));
            displayPanel = new JPanel();
            displayPanel.setBackground(Color.white);
            
            
            redPanel.add(jl1);
            redPanel.add(js1);
            
            greenPanel.add(jl2);
            greenPanel.add(js2);
            
            bluePanel.add(jl3);
            bluePanel.add(js3);

        js1.addChangeListener(this);
        js2.addChangeListener(this);
        js3.addChangeListener(this);
              
            Container c=getContentPane();
            getContentPane().setLayout(new GridLayout(4,0));
            
            getContentPane().add(redPanel);
            getContentPane().add(greenPanel);
            getContentPane().add(bluePanel);
            getContentPane().add(displayPanel);
    }
        public void stateChanged(ChangeEvent e){
         displayPanel.setBackground(new Color(js1.getValue(),js2.getValue(),js3.getValue()));
        }
        
        public static void main(String[] args){

        ColorSlide frame = new ColorSlide ("ColorSlide");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.pack();
        frame.setVisible(true);
        
    }
    }