From N V Fitton, ideas to share with my students at Northern Virginia Community College, Alexandria campus.
I teach mathematics and computer science.

Friday, March 04, 2005

201 sweet Java color chooser

Attached to this post is code from java.sun.com for a color chooser for RGB colors (remember Roy G. Biv) to use in our next program. Our context will be different from this one — we're not using Swing — but you can't do much better for figuring out what colors you want than this! Just save it as ColorChooserDemo.java and compile and run it in the usual way. Read all about Color Choosers. To see the code, click on the comment below.

1 Comments:

Blogger N V Fitton said...

/*
* ColorChooserDemo.java
*
* from java.sun.com
*
*/

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.colorchooser.*;

/* ColorChooserDemo.java is a 1.4 application that requires no other files. */

public class ColorChooserDemo extends JPanel implements ChangeListener
{
protected JColorChooser tcc;
protected JLabel banner;
public ColorChooserDemo()
{
super(new BorderLayout());

//Set up the banner at the top of the window
banner = new JLabel("Welcome to the Tutorial Zone!", JLabel.CENTER);
banner.setForeground(Color.yellow);
banner.setBackground(Color.blue);
banner.setOpaque(true);
banner.setFont(new Font("SansSerif", Font.BOLD, 24));
banner.setPreferredSize(new Dimension(100, 65));
JPanel bannerPanel = new JPanel(new BorderLayout());
bannerPanel.add(banner, BorderLayout.CENTER);
bannerPanel.setBorder(BorderFactory.createTitledBorder("Banner"));

//Set up color chooser for setting text color
tcc = new JColorChooser(banner.getForeground());
tcc.getSelectionModel().addChangeListener(this);
tcc.setBorder(BorderFactory.createTitledBorder( "Choose Text Color"));
add(bannerPanel, BorderLayout.CENTER);
add(tcc, BorderLayout.PAGE_END);
}

public void stateChanged(ChangeEvent e)
{
Color newColor = tcc.getColor();
banner.setForeground(newColor);
}

/**
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event-dispatching thread.
*/
private static void createAndShowGUI()
{
//Make sure we have nice window decorations.
JFrame.setDefaultLookAndFeelDecorated(true);

//Create and set up the window.
JFrame frame = new JFrame("ColorChooserDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Create and set up the content pane.
JComponent newContentPane = new ColorChooserDemo();
newContentPane.setOpaque(true);

//content panes must be opaque
frame.setContentPane(newContentPane);

//Display the window.
frame.pack();
frame.setVisible(true);
}

public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable()
{ public void run() { createAndShowGUI(); } } );
}
}

4:44 PM

 

Post a Comment

<< Home