class ColorChooserPanel extends JPanel {
public ColorChooserPanel() {
JButton modalButton = new JButton("Modal");
modalButton.addActionListener(new ModalListener());
this.add(modalButton);
JButton modelessButton = new JButton("Modeless");
modelessButton.addActionListener(new ModelessListener());
this.add(modelessButton);
JButton immediateButton = new JButton("Immediate");
immediateButton.addActionListener(new ImmediateListener());
this.add(immediateButton);
}
private class ModalListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent event) {
Color defaultColor = getBackground();
Color selected = JColorChooser.showDialog(ColorChooserPanel.this, "Set Background", defaultColor);
if(selected != null) {
setBackground(selected);
}
}
}
private class ModelessListener implements ActionListener {
public ModelessListener() {
chooser = new JColorChooser();
dialog = JColorChooser.createDialog(ColorChooserPanel.this, "Background Color",
false, chooser, new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
setBackground(chooser.getColor());
}}, null);
}
@Override
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() {
@Override
public void stateChanged(ChangeEvent event) {
setBackground(chooser.getColor());
}
});
dialog = new JDialog((Frame)null, false);
dialog.add(chooser);
dialog.pack();
}
@Override
public void actionPerformed(ActionEvent event) {
chooser.setColor(getBackground());
dialog.setVisible(true);
}
private JDialog dialog;
private JColorChooser chooser;
}
}
public ColorChooserPanel() {
JButton modalButton = new JButton("Modal");
modalButton.addActionListener(new ModalListener());
this.add(modalButton);
JButton modelessButton = new JButton("Modeless");
modelessButton.addActionListener(new ModelessListener());
this.add(modelessButton);
JButton immediateButton = new JButton("Immediate");
immediateButton.addActionListener(new ImmediateListener());
this.add(immediateButton);
}
private class ModalListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent event) {
Color defaultColor = getBackground();
Color selected = JColorChooser.showDialog(ColorChooserPanel.this, "Set Background", defaultColor);
if(selected != null) {
setBackground(selected);
}
}
}
private class ModelessListener implements ActionListener {
public ModelessListener() {
chooser = new JColorChooser();
dialog = JColorChooser.createDialog(ColorChooserPanel.this, "Background Color",
false, chooser, new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
setBackground(chooser.getColor());
}}, null);
}
@Override
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() {
@Override
public void stateChanged(ChangeEvent event) {
setBackground(chooser.getColor());
}
});
dialog = new JDialog((Frame)null, false);
dialog.add(chooser);
dialog.pack();
}
@Override
public void actionPerformed(ActionEvent event) {
chooser.setColor(getBackground());
dialog.setVisible(true);
}
private JDialog dialog;
private JColorChooser chooser;
}
}