有一个问题
就是有一个园,分成三个部分分成红,绿,黑,
园的下边有三个滑动条,拖动一个滑动条,对应的和颜色的大小就会变化比如说,拖动第一个滑动条,红色的区域的大小就会变化,同时,绿色和黑的区域相应的发生变化
哪位大哥能帮忙解决一下??
解决好了,分数全是他的,呵呵
谢谢

解决方案 »

  1.   

    //ColorSelect.java
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.awt.Color;public class ColorSelect extends JFrame 
       implements AdjustmentListener
    {   int r1;
    int g1;
    int b1;
    private JLabel redLabel;
    private JLabel greenLabel;
    private JLabel blueLabel;
    private JScrollBar red;
    private JScrollBar green;
    private JScrollBar blue;
      private JP1 colorPanel;
      class JP1 extends JPanel{
    public void paintComponent(Graphics g){
    super.paintComponent(g);
    g.setColor(Color.red);
    g.fillArc(0,0,100,100,0,r1);
    g.setColor(Color.green);
    g.fillArc(0,0,100,100,r1,(360-r1)/2);
    g.setColor(Color.blue);
    g.fillArc(0,0,100,100,(360+r1)/2,(360-r1)/2);}
    }
      public ColorSelect()
      { 
        r1=b1=g1=120;
        setTitle("ColorSelect");
        setSize(300,200);
        addWindowListener(new WindowAdapter()
        { 
    public void windowClosing(WindowEvent e)
          { 
    System.exit(0);
          }
        } );
        Container contentPane=getContentPane();
        JPanel p=new JPanel();
        p.setLayout(new GridLayout(3,2));
        p.add(redLabel=new JLabel("Red 0"));
        p.add(red=new JScrollBar(Adjustable.HORIZONTAL, 
              0,0,0,360));
        red.setBlockIncrement(16);
        red.addAdjustmentListener(this);
        p.add(greenLabel=new JLabel("Green 0"));
        p.add(green=new JScrollBar(Adjustable.HORIZONTAL, 
                    0,0,0,360));
        green.setBlockIncrement(16);
        green.addAdjustmentListener(this);
        p.add(blueLabel=new JLabel("Blue 0"));
        p.add(blue=new JScrollBar(Adjustable.HORIZONTAL, 
                                  0,0,0,360));
        blue.setBlockIncrement(16);
        blue.addAdjustmentListener(this);
        contentPane.add(p,"South");
        colorPanel=new JP1();
        colorPanel.setBackground(new Color(0,0,0));
        contentPane.add(colorPanel, "Center");
      }
      public void adjustmentValueChanged(AdjustmentEvent evt)
      { r1=red.getValue();
        g1=green.getValue();
    b1=blue.getValue();    
        redLabel.setText("Red "+red.getValue());
        greenLabel.setText("Green "+green.getValue());         
        blueLabel.setText("Blue "+blue.getValue());
       
       
                     //xiugai here
        
        
        
        
        colorPanel.repaint();
      }
      public static void main(String[] args)
      { 
        JFrame f=new ColorSelect();
        f.show();  
      }
    }
      

  2.   

    //ColorSelect.java
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.awt.Color;
    public class ColorSelect extends JFrame implements AdjustmentListener
    {   int r1;
    int g1;
    int b1;
    private JLabel redLabel;
    private JLabel greenLabel;
    private JLabel blueLabel;
    private JScrollBar red;
    private JScrollBar green;
    private JScrollBar blue;
        private JP1 colorPanel;
     class JP1 extends JPanel{
    public void paintComponent(Graphics g){
    super.paintComponent(g);
    if(r1!=0){
     g.setColor(Color.red);
     g.fillArc(0,0,100,100,0,r1);
     g.setColor(Color.green);
     g.fillArc(0,0,100,100,r1,(360-r1)/2);
     g.setColor(Color.blue);
     g.fillArc(0,0,100,100,(360+r1)/2,(360-r1)/2);
         }

    else if(r1==0&&b1!=0){
        r1=b1;
        g.setColor(Color.blue);
            g.fillArc(0,0,100,100,0,r1);
            g.setColor(Color.green);
        g.fillArc(0,0,100,100,r1,(360-r1)/2);
        g.setColor(Color.red);
        g.fillArc(0,0,100,100,(360+r1)/2,(360-r1)/2);
     }

    else if(b1==0&&g1!=0){
      r1=g1;
      g.setColor(Color.green);
      g.fillArc(0,0,100,100,0,r1);
      g.setColor(Color.blue);
      g.fillArc(0,0,100,100,r1,(360-r1)/2);
      g.setColor(Color.red);
      g.fillArc(0,0,100,100,(360+r1)/2,(360-r1)/2);
             }
    else {
      r1=120;
      g.setColor(Color.green);
      g.fillArc(0,0,100,100,0,r1);
      g.setColor(Color.blue);
      g.fillArc(0,0,100,100,r1,(360-r1)/2);
      g.setColor(Color.red);
      g.fillArc(0,0,100,100,(360+r1)/2,(360-r1)/2);
    }
    }
    }
    public ColorSelect()

        r1=b1=g1=120;
        setTitle("ColorSelect");
        setSize(300,200);
        addWindowListener(new WindowAdapter()
        { 
    public void windowClosing(WindowEvent e)
          { 
    System.exit(0);
          }
        } );
        Container contentPane=getContentPane();
        JPanel p=new JPanel();
        p.setLayout(new GridLayout(3,2));
        p.add(redLabel=new JLabel("Red 0"));
        p.add(red=new JScrollBar(Adjustable.HORIZONTAL, 0,0,0,360));
        red.setBlockIncrement(16);
        red.addAdjustmentListener(this);
        p.add(greenLabel=new JLabel("Green 0"));
        p.add(green=new JScrollBar(Adjustable.HORIZONTAL, 0,0,0,360));
        green.setBlockIncrement(16);
        green.addAdjustmentListener(this);
        p.add(blueLabel=new JLabel("Blue 0"));
        p.add(blue=new JScrollBar(Adjustable.HORIZONTAL, 0,0,0,360));
        blue.setBlockIncrement(16);
        blue.addAdjustmentListener(this);
        contentPane.add(p,"South");
        colorPanel=new JP1();
        colorPanel.setBackground(new Color(0,0,0));
        contentPane.add(colorPanel, "Center");
      }
    public void adjustmentValueChanged(AdjustmentEvent evt){
    r1=red.getValue();
        g1=green.getValue();
    b1=blue.getValue();    
        redLabel.setText("Red "+red.getValue());
    greenLabel.setText("Green "+green.getValue());         
        blueLabel.setText("Blue "+blue.getValue());
        colorPanel.repaint();
      }
      public static void main(String[] args)
      { 
        JFrame f=new ColorSelect();
        f.show();  
      }
    }