2014-01-13 1 views
-1

사용자의 색상을 String으로 얻는 방법 및 Color enum 값을 허용하는 방법으로 사용 하시겠습니까?사용자의 색을 String으로 가져 와서 enum 값을 받아들이는 메서드에서 사용합니까?

아이디어는 사용자가 선택하고 값을 전달하거나 다른 방법으로 상황을 처리하는 색상을 얻는 것입니다. element.setBackground(java.awt.Color)입니다.

+0

가능 (http://stackoverflow.com/questions/2854043/converting-a-string-to-color-in-java) –

답변

3

나는 Map<String, Color>을 만들고 String 색 이름이 매핑되는 곳을 Color으로 채 웁니다. java.awt.Color's own staticColor constants을 사용할 수 있습니다. colorMap.put("BLACK", Color.BLACK); 또는 사용자 고유의 매핑을 삽입 할 수 있습니다. 그런 다음 사용자 입력을 받아 get을 사용하여 조회를 수행하여 적절한 Color 객체를 얻을 수 있습니다.

2

이 예제는에 선택한 색상의 숫자 값을 얻을하고 분석 할 수 있다면 버튼이

 Field field = null; 
     try { 
      field = Color.class.getField(textField.getText().toString()); 
     } catch (NoSuchFieldException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } catch (SecurityException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } 
     Color color = null; 
     try { 
      color = (Color)field.get(null); 
     } catch (IllegalArgumentException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } catch (IllegalAccessException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } 
     frame.getContentPane().setBackground(color); 
2

을 누를 때 프레임의 색상을 설정에서는 TextField의 내용을 사용 String 다음 Color.decode() 메서드를 호출 할 수 있습니다. 예를 흰색 컬러를

:

element.setBackground(Color.decode("077777777")); // octal format 
element.setBackground(Color.decode("0xFFFFFF")); // hexa format 
element.setBackground(Color.decode("16777215")); // decimal format 

의 javadoc에서 :

public static Color decode(String nm) 
        throws NumberFormatException 

는 문자열을 정수로 변환하고, 지정된 불투명 칼라를 돌려줍니다. 이 메서드는 8 진수 및 16 진수를 나타내는 데 사용되는 문자열 형식을 처리합니다.

매개 변수 : nm - 24 비트 정수

반환 등의 불투명 한 색상 나타내는 문자열 : 새로운 Color 객체를.

이이
+0

죄송합니다 [자바 컬러로 문자열 변환]의 중복되지만, 사용자 친화적이지 않은 솔루션. 자연 언어 입력 만 사용해야합니다. –

+0

문제는 아니지만 사용자의 요구 사항과 매우 관련이 있으므로 질문에이를 추가하는 것을 고려하십시오. @ MindaugasBernatavičius – dic19

관련 문제