All pastes #800941 Raw Edit

Miscellany

public text v1 · immutable
#800941 ·published 2007-11-28 21:22 UTC
rendered paste body
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class ColorOptionsPanel extends JPanel
{
    private final int WIDTH = 350, HEIGHT = 100, FONT_SIZE = 20;
    private final int NUM_COLORS = 5;
    private Color[] color = new Color[NUM_COLORS];
    private JRadioButton[] colorButton = new JRadioButton[NUM_COLORS];
    private JLabel heading;

    // ------------------------------------------------------------------
    //  Sets up a panel with a label at the top and a set of radio buttons
    //  that control the background color of the panel.
    // ------------------------------------------------------------------
    public ColorOptionsPanel ()
    {
	heading = new JLabel ("Choose the background color!");
	heading.setFont (new Font ("Helvetica", Font.BOLD, FONT_SIZE));

	color[0] = Color.yellow;
    JRadioButton yellow = new JRadioButton("Yellow", true);
    add(yellow);
	color[1] = Color.cyan;
    JRadioButton cyan = new JRadioButton("Cyan", false);
    add(cyan);
	color[2] = Color.red;
    JRadioButton red = new JRadioButton("Red", false);
    add(red);
    color[3] = Color.green;
    JRadioButton green = new JRadioButton("Green", false);
    add(green);
	color[4] = Color.magenta;
    JRadioButton magenta = new JRadioButton("Magneta", false);
    add(magenta);

    colorButton[0] = yellow;
    colorButton[1] = cyan;
    colorButton[2] = red;
    colorButton[3] = green;
    colorButton[4] = magenta;

	// Instantiate a ButtonGroup object and a ColorListener object
    ButtonGroup obj = new ButtonGroup();
    ColorListener asdf = new ColorListener();

	// Set up the panel
	add (heading);
	setBackground (Color.yellow);
	setPreferredSize (new Dimension (WIDTH, HEIGHT));

	// Group the radio buttons, add a ColorListener to each
    obj.add(yellow);
    yellow.addActionListener(asdf);
    obj.add(cyan);
    cyan.addActionListener(asdf);
    obj.add(red);
    red.addActionListener(asdf);
    obj.add(green);
    green.addActionListener(asdf);
    obj.add(magenta);
    magenta.addActionListener(asdf);
    }
 
    // **************************************************************
    //   Represents the listener for the radio buttons.
    // **************************************************************
    private class ColorListener implements ActionListener
    {
	// --------------------------------------------------------
	//  Updates the background color of the panel based on
	//  which radio button is selected.
	// --------------------------------------------------------
	public void actionPerformed (ActionEvent event)
	{
        for(int i=0; i < NUM_COLORS; i++) {
            if (colorButton[i].isSelected()) {
                setBackground(color[i]);
            }
        }
    }
    }
}