原创RGB调节器——JSlider Exercise

  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. }
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值