可能重复:
Java color code convert to color name
Java Swing issue - Using color palette
我创建了一个程序,用于显示来自Jcolorchooser的所选颜色的颜色名称和十六进制值,我得到一个输出,当我从Jcolorchooser中选择颜色时,它将在JTextField中显示六进制十进制值。现在我不知道如何在JTextField中获取所选颜色的颜色名称。请帮助我摆脱这个问题。
Enter code here
===============
import javax.swing.*;
import javax.swing.JButton .*;
import javax.swing.JColorChooser .*;
import javax.swing.JTextField .*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Color;
import javax.accessibility.*;
public class Main extends JComponent implements Accessible
{
public JColorChooser chooser;
public Color color;
public Main()
{
JFrame frame;
JButton button ;
final JTextField text1,text2;
chooser = new JColorChooser();
frame= new JFrame();
JPanel panel = new JPanel();
button = new JButton("Show color Palette");
text1 = new JTextField(20);
text2 = new JTextField(20);
frame.add(panel);
panel.add(button);
panel.add(text1);
panel.add(text2);
panel.add(chooser);
chooser.setVisible(false);
button.setLocation(800,600);
button.setActionCommand("");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
//chooser.setVisible(true);
color = chooser.showDialog(chooser, "SHOW THE COLOR", chooser.getColor());
{
if(color!= null)
{
String hex = Integer.toHexString(color.getRGB() & 0xffffff);
//hex= hex.substring(2,hex.length());
hex="#"+hex;
text1.setText(hex);
}
}
}
}
);
frame.setVisible(true);
frame.setSize(1000,800);
}
public static void main( String [] argv)
{
new Main();
}
}