2012-01-05 5 views
2

내 통화에 간단한 통화 변환기 도구를 추가하려고하지만 장벽에 부딪 힙니다. Java에서 JTextField의 입력으로 부동 소수점 숫자 만 허용하는 간단한 방법이 있습니까? 내가 온라인에서 읽은 것부터, JFormattedTextField를 사용하는 것은 사용할 고통입니다. 필터링을 수행하기 위해 클래스를 만들어야합니까?자바의 JTextField에서만 부동 소수점을 허용하는 방법

+1

온라인으로 읽는 모든 것을 믿지 마십시오 :-) 확실히 학습 곡선이 있지만, 처음부터 다시 시작하는 것이 더 어렵습니다 ... 철저히 테스트하지 않겠습니다. – kleopatra

답변

2

JFormattedTextField가 너무 어렵지 않아야합니다. 매개 변수로 Formatter를 전달하면 자체적으로 처리해야합니다. 당신은 그렇게 지역 설정을 사용하는 자바 API에서 얻을 수 있습니다 :

새로운 JFormattedTextField (java.text.NumberFormat.getCurrencyInstance());

0

JFormattedTextField는 텍스트 입력 서식 지정에 유용하기 때문에 vcetinick에 동의합니다. 당신의 JTextField에 입력 된 값을 확인하려면

그러나, 당신은 ActionListener를 직접 구현해야 할 수 있습니다

public void actionPerformed(ActionEvent evt) { 
    JTextField textfield = (JTextField)evt.getSource(); 
    String strTextValue = textfield.getText(); 
    try { 
     if (strTextValue.equals("")) { 
      // Handle empty string 
     } else { 
      double dValue = Double.parseDouble(strTextValue); 
      // Handle valid value 
     } 
    } catch (Exception e) { 
     // Handle invalid value 
    } 
} 
2

JFormattedTextField을 사용하는 것이 좋을 것이다.

서식있는 텍스트 필드는 개발자가 텍스트 필드에 입력 할 수있는 유효한 문자 집합을 지정하는 방법을 제공합니다. 특히 JFormattedTextField 클래스는 JTextField 클래스에서 상속 된 지형지 물에 형식 기와 객체 값을 추가합니다. 포맷터는 필드의 값을 표시하는 텍스트로 변환하고 텍스트를 필드의 값으로 변환합니다. See examples.

1

당신은 JFormattedTextField를 사용할 수 있지만 그것은 정말 끔찍한 사용자 경험을 제공합니다. 입력 할 때 부적절한 문자를 삭제하는 것이 좋습니다. DocumentFilter은 상대적으로 (Swing 용) 깨끗한 방법을 제공합니다. 몇 년 전 나는 sourceblog decription이라는 사소한 예를 썼다.

관련 문제