原创RGB调节器——JSlider Exercise
来源:互联网 发布:获取网页源码有什么用 编辑:程序博客网 时间:2024/05/22 12:01
- import java.awt.*;
- import java.awt.event.*;
- import java.util.*;
- import javax.swing.*;
- import javax.swing.event.*;
- public class ColorSlider
- {
- public static void main(String[] args)
- {
- CSFrame aFrame = new CSFrame();
- aFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- aFrame.setVisible(true);
- }
- }
- class CSFrame extends JFrame
- {
- public CSFrame()
- {
- setTitle("RGB_Slider");
- setSize(400,400);
- setLocation(100,100);
-
- r = g = b = 0;
-
- sliderPanel = new JPanel();
- colorPanel = new JPanel();
- aTextField = new JTextField("R=" + r + ",G=" + g + ",B="+b);
-
- sliderPanel.setLayout(new FlowLayout(FlowLayout.LEFT));
-
- sliderR = new JSlider(0,255,0);
- addSlider(sliderR,"R");
-
- sliderG = new JSlider(0,255,0);
- addSlider(sliderG,"G");
-
- sliderB = new JSlider(0,255,0);
- addSlider(sliderB,"B");
-
- Container content =getContentPane();
- JPanel panelB = new JPanel();
- panelB.setLayout(new GridLayout(2,1,10,10));
- panelB.add(sliderPanel);
- panelB.add(colorPanel);
- content.add(panelB,BorderLayout.CENTER);
- content.add(aTextField,BorderLayout.SOUTH);
- }
-
- public void addSlider(JSlider s,String description)
- {
- s.addChangeListener(new ChangeListener()
- {
- public void stateChanged(ChangeEvent e)
- {
- JSlider source = (JSlider)e.getSource();
- if(source == sliderR)
- r = source.getValue();
- else if(source == sliderG)
- g = source.getValue();
- else if(source == sliderB)
- b = source.getValue();
- colorPanel.setBackground(new Color(r,g,b));
- aTextField.setText("R=" + r + ",G=" + g + ",B="+b);
- }
- });
-
- JPanel aPanel = new JPanel();
- aPanel.add(s);
- JLabel aLable = new JLabel(description);
- aPanel.add(aLable);
- sliderPanel.add(aPanel);
- }
-
- private JPanel sliderPanel;
- private JPanel colorPanel;
- private JSlider sliderR;
- private JSlider sliderG;
- private JSlider sliderB;
- private JTextField aTextField;
- private int r,g,b;
- }