颜色选择框

来源:互联网 发布:网络传播与策划 刘芸 编辑:程序博客网 时间:2024/04/20 12:06

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class FirstSample{
    public static void main(String[] args){
        ColorChooseFrame frame=new ColorChooseFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

class ColorChooseFrame extends JFrame{
    public ColorChooseFrame(){
        setTitle("ColorChooseTest");
        setSize(WIDTH,HEIGHT);
       
        ColorChoosePanel panel=new ColorChoosePanel();
        add(panel);
    }
    public static final int WIDTH=800;
    public static final int HEIGHT=600;
}

class ColorChoosePanel extends JPanel{
    public ColorChoosePanel(){
        JButton modalButton=new JButton("Modal");
        modalButton.addActionListener(new ModalListener());
        add(modalButton);
       
        JButton modelessButton=new JButton("Modeless");
        modelessButton.addActionListener(new ModelessListener());
        add(modelessButton);
       
        JButton immediateButton=new JButton("Immediate");
        immediateButton.addActionListener(new ImmediateListener());
        add(immediateButton);
    }
   
    private class ModalListener implements ActionListener{
        public void actionPerformed(ActionEvent event){
            Color defaultColor=getBackground();
            Color selected=JColorChooser.showDialog(ColorChoosePanel.this, "Set background", defaultColor);
            if(selected!=null)
                setBackground(selected);
        }
    }
   
    private class ModelessListener implements ActionListener{
        public ModelessListener(){
            chooser=new JColorChooser();
            dialog=JColorChooser.createDialog(ColorChoosePanel.this, "Background Color", false, chooser,
                    new ActionListener(){
                        public void actionPerformed(ActionEvent event){
                            setBackground(chooser.getColor());
                        }}, null);
        }
       
        public void actionPerformed(ActionEvent event){
            chooser.setColor(getBackground());
            dialog.setVisible(true);
        }
       
        private JDialog dialog;
        private JColorChooser chooser;
    }
   
    private class ImmediateListener implements ActionListener{
        public ImmediateListener(){
            chooser=new JColorChooser();
            chooser.getSelectionModel().addChangeListener(new
                    ChangeListener(){
                        public void stateChanged(ChangeEvent event){
                            setBackground(chooser.getColor());
                        }
                    });
            dialog=new JDialog((Frame)null,false);
            dialog.add(chooser);
            dialog.pack();
        }
       
        public void actionPerformed(ActionEvent event){
            chooser.setColor(getBackground());
            dialog.setVisible(true);
        }
       
        private JDialog dialog;
        private JColorChooser chooser;
    }
}

原创粉丝点击