FileDocCategorySizeDatePackage
ColorPicker3.javaAPI DocExample2038Thu Oct 24 20:14:24 BST 2002None

ColorPicker3.java

// ColorPicker3.java
// A quick test of the JColorChooser dialog.  This example adds a custom
// preview pane.
//
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.colorchooser.*;

public class ColorPicker3 extends JFrame {

  Color c;

  public ColorPicker3() {
    super("JColorChooser Test Frame");
    setSize(200, 100);
    final JButton go = new JButton("Show JColorChoser");
    final Container contentPane = getContentPane();
    go.addActionListener(new ActionListener() {
      final JColorChooser chooser = new JColorChooser();
      boolean first = true;
      public void actionPerformed(ActionEvent e) {
        if (first) {
          first = false;
          GrayScalePanel gsp = new GrayScalePanel();
          chooser.addChooserPanel(gsp);
          chooser.setPreviewPanel(new CustomPane());
        }
        JDialog dialog = JColorChooser.createDialog(ColorPicker3.this, 
            "Demo 3", true,
            chooser, new ActionListener() {
              public void actionPerformed(ActionEvent e) {
                c = chooser.getColor();
              }}, null);
        dialog.setVisible(true);
        contentPane.setBackground(c);
      }
    });
    contentPane.add(go, BorderLayout.SOUTH);
    // addWindowListener(new BasicWindowMonitor());  // 1.1 & 1.2
    setDefaultCloseOperation(EXIT_ON_CLOSE);
  }

  public class CustomPane extends JPanel {
    JLabel j1 = new JLabel("This is a custom preview pane",
                           JLabel.CENTER);
    JLabel j2 = new JLabel("This label previews the background",
                           JLabel.CENTER);
    public CustomPane() {
      super(new GridLayout(0,1));
      j2.setOpaque(true);
      add(j1);
      add(j2);
    }

    public void setForeground(Color c) {
      super.setForeground(c);
      if (j1 != null) {
        j1.setForeground(c);
        j2.setBackground(c);
      }
    }
  }

  public static void main(String args[]) {
    ColorPicker3 cp3 = new ColorPicker3();
    cp3.setVisible(true);
  }
}