颜色选择框

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;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值