package jas2.util;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
/**
*
*/
public class ColorChooser extends JButton
{
public ColorChooser()
{
this(Color.black);
}
public ColorChooser(Color c)
{
setColor(c);
setOpaque(true);
}
public ColorChooser(final String key)
{
m_prop = Application.getApplication().getUserProperties();
m_key = key;
setOpaque(true);
setColor(m_prop.getColor(key, Color.black));
}
public Dimension getPreferredSize()
{
return new Dimension(20,20);
}
public void setColor(Color c)
{
m_color = c;
setBackground(c);
repaint(); // Should not be necessary? (swing 0.6.1)
Enumeration e = m_listeners.elements();
while (e.hasMoreElements())
{
ColorListener l = (ColorListener) e.nextElement();
l.colorChanged(new ColorEvent(this,c));
}
}
public Color getColor()
{
return m_color;
}
public void addColorListener(ColorListener l)
{
m_listeners.addElement(l);
}
public void removeColorListener(ColorListener l)
{
m_listeners.removeElement(l);
}
protected void fireActionPerformed(ActionEvent e)
{
Color c = javax.swing.JColorChooser.showDialog(this,"Choose color...",m_color);
if (c != null)
{
setColor(c);
if (m_key != null)
m_prop.setColor(m_key, c);
}
}
private UserProperties m_prop;
private String m_key;
private Color m_color;
private Vector m_listeners = new Vector();
}
Ads help maintain this website.