2012-01-21 2 views
-1

Я работаю с JFrame. В дизайне View i ставится One JBUtton, два JTextField и распашные окна JColorChooser. чем я пишу код для этого получения шестнадцатеричного значения и имени цвета в двух процессах JTextField.the, если я нажму на JButton, он откроет палитру JColorChooser. После этого я нажимаю на JColorChooser для выбора цвета, который отображает соответствующее шестнадцатеричное значение цвета в один JtextField и цветное имя в другом JTextField. но я могу получить шестнадцатеричное значение, но я не знаю, как я могу получить имя цвета.получить имя цвета JColorChooser

import javax.swing.*; 
     import java.awt.*; 
     import javax.swing.event.*; 
     import java.util.Set; 
     import javax.accessibility.*; 
     import javax.swing.colorchooser.ColorSelectionModel;7. 
     public class Main extends JComponent implements Accessible 
     { 
     public ColorSelectionModel selectionModel; 
     public static final String SELECTION_MODEL_PROPERTY = "selectionModel"; 
     public JColorChooser chooser; 
     public Color color; 
     public void process() 
     { 
     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) { 
      color = chooser.showDialog(chooser, "SHOW THE COLOR", chooser.getColor()); 
      { 
       if(color!= null) 
       { 
       String hex = Integer.toHexString(color.getRGB() & 0xffffff); 
       hex="#"+hex; 
       text1.setText(hex); 
       } 
      } 
     } 
      }); 
     frame.setVisible(true); 
     frame.setSize(1000,800); 
     } 
     public static void main(String [] argv) 
     { 
     Main m1 = new Main(); 
     m1.process(); 
     } 
    } 
    </pre></code> 
+2

Кроме того, что вы подразумеваете под «получить цвет по имени»? Большинство цветов не имеют «имен». Например, что такое «имя» нового цвета (220, 121, 20)? –

+1

Я видел этот же вопрос, миллион раз на SO, похоже, вы пропустили проверку! [ПРОЧИТАЕТ ТОЛЬКО ВОПРОС] (http://stackoverflow.com/q/8557762/1057230) [ДРУГОЕ ОДИН] (http://stackoverflow.com/q/8544585/1057230) С уважением –

+1

Возможный дубликат [Преобразование кода цвета Java на цветное имя] (http://stackoverflow.com/questions/4126029/java-color-code-convert-to-color-name) –

ответ

1

Большинство цветов не имеют названия. Ваше сопоставление будет работать только с другой стороны.

+0

Ваш ответ будет лучше как комментарий, чем как ответ. –

+0

если есть какое-либо другое решение этой проблемы. – javasi

Смежные вопросы