原创RGB调节器——JSlider Exercise

来源:互联网 发布:获取网页源码有什么用 编辑:程序博客网 时间:2024/05/22 12:01
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import java.util.*;
  4. import javax.swing.*;
  5. import javax.swing.event.*;
  6. public class ColorSlider
  7. {
  8.     public static void main(String[] args)
  9.     {
  10.         CSFrame aFrame = new CSFrame();
  11.         aFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  12.         aFrame.setVisible(true);
  13.     }
  14. }
  15. class CSFrame extends JFrame 
  16. {
  17.     public CSFrame()
  18.     {
  19.         setTitle("RGB_Slider");
  20.         setSize(400,400);
  21.         setLocation(100,100);
  22.         
  23.         r = g = b = 0;
  24.         
  25.         sliderPanel = new JPanel();
  26.         colorPanel = new JPanel();
  27.         aTextField = new JTextField("R=" + r + ",G=" + g + ",B="+b);
  28.         
  29.         sliderPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
  30.         
  31.         sliderR = new JSlider(0,255,0);
  32.         addSlider(sliderR,"R");
  33.         
  34.         sliderG = new JSlider(0,255,0);
  35.         addSlider(sliderG,"G");
  36.         
  37.         sliderB = new JSlider(0,255,0);
  38.         addSlider(sliderB,"B");
  39.         
  40.         Container content =getContentPane();
  41.         JPanel panelB = new JPanel();
  42.         panelB.setLayout(new GridLayout(2,1,10,10));
  43.         panelB.add(sliderPanel);
  44.         panelB.add(colorPanel);
  45.         content.add(panelB,BorderLayout.CENTER);
  46.         content.add(aTextField,BorderLayout.SOUTH);
  47.     }
  48.     
  49.     public void addSlider(JSlider s,String description)
  50.     {
  51.         s.addChangeListener(new ChangeListener()
  52.         {
  53.             public void stateChanged(ChangeEvent e)
  54.             {
  55.                 JSlider source = (JSlider)e.getSource();
  56.                 if(source == sliderR)
  57.                     r = source.getValue();
  58.                 else if(source == sliderG)
  59.                     g =  source.getValue();
  60.                 else if(source == sliderB)
  61.                     b = source.getValue();
  62.                 colorPanel.setBackground(new Color(r,g,b));
  63.                 aTextField.setText("R=" + r + ",G=" + g + ",B="+b);
  64.             }
  65.         });
  66.         
  67.         JPanel aPanel = new JPanel();
  68.         aPanel.add(s);
  69.         JLabel aLable = new JLabel(description);
  70.         aPanel.add(aLable);
  71.         sliderPanel.add(aPanel);
  72.     }
  73.     
  74.     private JPanel sliderPanel;
  75.     private JPanel colorPanel;
  76.     private JSlider sliderR;
  77.     private JSlider sliderG;
  78.     private JSlider sliderB;
  79.     private JTextField aTextField;
  80.     private int r,g,b;
  81. }
 
原创粉丝点击