在JcolorChooser中获取所选颜色的颜色名称

时间:2011-12-19 06:12:44

标签: java swing

  

可能重复:
  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();
 }
}

0 个答案:

没有答案