JColorChooser

Sir,

In my application, when I run it, it shows the frame with three tabs, like -- swatches, HSB, & RGB. I want my application to show only the RGB part. What should I do, please help me out.

What can I do so that my application shows only the RGB and not the other tabs.

Here's my code

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.colorchooser.*;

/* ColorChooserDemo.java requires no other files. */

publicclass MyColorChooserextends JPanel

implements ChangeListener{

protected JColorChooser tcc;

protected JLabel banner;

public MyColorChooser(){

super(new BorderLayout());

//Set up the banner at the top of the window

banner =new JLabel("Swing's 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);

}

publicvoid 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.

*/

privatestaticvoid createAndShowGUI(){

//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 MyColorChooser();

newContentPane.setOpaque(true);//content panes must be opaque

frame.setContentPane(newContentPane);

//Display the window.

frame.pack();

frame.setVisible(true);

}

publicstaticvoid main(String[] args){

//Schedule a job for the event-dispatching thread:

//creating and showing this application's GUI.

javax.swing.SwingUtilities.invokeLater(new Runnable(){

publicvoid run(){

createAndShowGUI();

}

});

}

}

Thanking you Sir,

[4749 byte] By [Zorama] at [2007-11-27 11:22:28]
# 1

here's your revise code

copy and paste. good luck!

import java.awt.*;

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.colorchooser.*;

/* ColorChooserDemo.java requires no other files. */

public class MyColorChooser extends JPanel

implements ChangeListener {

protected JColorChooser tcc;

protected JLabel banner;

public MyColorChooser() {

super(new BorderLayout());

//Set up the banner at the top of the window

banner = new JLabel("Swing's 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"));

/* remove panel*/

AbstractColorChooserPanel[] t = tcc.getChooserPanels();

tcc.removeChooserPanel(t[0]);

tcc.removeChooserPanel(t[1]);

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() {

//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 MyColorChooser();

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();

}

});

}

}

Yannixa at 2007-7-29 14:55:04 > top of Java-index,Desktop,Core GUI APIs...
# 2

Thank you so much Sir,

Its been a great help..

But Sir, what should I do to change the JSpinners into text boxes so that the corresponding value is displayed in text boxes in place of JSpinners, and also I want to remove all the colored rectangle shown at the bottom except the center one, which will be enlarged a bit also removing the text displayed in the colored rectangle in the bottom.

Thanking you once again.

Zorama at 2007-7-29 14:55:04 > top of Java-index,Desktop,Core GUI APIs...
# 3

Help!

Help!

Help!

Zorama at 2007-7-29 14:55:04 > top of Java-index,Desktop,Core GUI APIs...
# 4

I think you should build your own chooser using AbstractColorChooserPanel.

if you want to remove the rectangle thing use remove().

Yannixa at 2007-7-29 14:55:04 > top of Java-index,Desktop,Core GUI APIs...