JFormattedTextField — 서식 지정 텍스트 필드

JFormattedTextField — 서식 지정 텍스트 필드

JFormattedTextField는 임의의 값을 서식 지정하고, 사용자가 텍스트를 편집한 뒤 특정 객체를 가져오는 기능을 추가한 JTextField입니다.

출처: Java API Reference

본문

public class JFormattedTextField extends JTextField

JFormattedTextField는 JTextField를 확장해 임의의 값의 서식 지정과, 사용자가 텍스트를 편집한 후 특정 객체를 가져오는 기능을 추가합니다. 다음은 날짜를 편집하도록 JFormattedTextField를 구성하는 예입니다.

JFormattedTextField ftf = new JFormattedTextField();
ftf.setValue(new Date());

JFormattedTextField가 생성되면 PropertyChangeListener를 추가하고 value라는 프로퍼티 이름의 PropertyChangeEvents를 수신해 편집 변경을 들을 수 있습니다. JFormattedTextField는 포커스를 잃었을 때 수행할 동작을 구성할 수 있습니다. 가능한 구성은 다음과 같습니다.

  • JFormattedTextField.REVERT — 현재 편집을 잃을 수 있지만 getValue와 일치하도록 표시를 되돌립니다
  • JFormattedTextField.COMMIT — 현재 값을 커밋합니다. 편집 중인 값이 AbstractFormatter에 의해 합법적인 값으로 간주되지 않으면(ParseException 발생) 값은 바뀌지 않고 편집된 값이 유지됩니다
  • JFormattedTextField.COMMIT_OR_REVERT — COMMIT과 유사하지만 값이 합법적이지 않으면 REVERT처럼 동작합니다
  • JFormattedTextField.PERSIST — 아무것도 하지 않고, 새 AbstractFormatter를 얻지 않으며, 값을 갱신하지 않습니다

기본값은 JFormattedTextField.COMMIT_OR_REVERT입니다. JFormattedTextField는 현재 편집 값이 유효하지 않아도 포커스를 벗어나게 둡니다. 잘못된 편집 상태에서 포커스를 고정하려면 InputVerifier를 연결할 수 있습니다. JFormattedTextField는 스스로 서식 지정을 하지 않고, JFormattedTextField.AbstractFormatterFactory 인스턴스에서 얻은 JFormattedTextField.AbstractFormatter 인스턴스를 통해 서식 지정을 수행합니다. 경고: AbstractFormatter는 보통 Document에 DocumentFilter를, JFormattedTextField에 NavigationFilter를 설치하므로 직접 설치하지 말아야 합니다. 경고: Swing은 스레드에 안전하지 않습니다. 이 클래스의 직렬화된 객체는 향후 Swing 버전과 호환되지 않을 수 있습니다. 현재 직렬화 지원은 단기 저장이나 같은 버전의 Swing을 실행하는 애플리케이션 간 RMI에 적합합니다. 1.4부터 모든 JavaBean의 장기 저장 지원이 java.beans 패키지에 추가되었으니 XMLEncoder를 참고하세요.

COMMIT

public static final int COMMIT

포커스를 잃으면 commitEdit가 호출되어야 함을 식별하는 상수입니다. 새 값을 커밋하는 중 ParseException이 발생하면 잘못된 값이 남습니다.

COMMIT_OR_REVERT

public static final int COMMIT_OR_REVERT

포커스를 잃으면 commitEdit가 호출되어야 함을 식별하는 상수입니다. 새 값을 커밋하는 중 ParseException이 발생하면 값을 커밋하지 않고 이전 값으로 되돌립니다.

REVERT

public static final int REVERT

포커스를 잃으면 표시가 값을 되돌려야 함을 식별하는 상수입니다.

PERSIST

public static final int PERSIST

포커스를 잃으면 아무것도 하지 않아야 함을 식별하는 상수입니다. 커밋도, 표시 재설정도 일어나지 않습니다.

JFormattedTextField

public JFormattedTextField()

서식 지정자가 없거나 필드에 값이 없는 JFormattedTextField를 만듭니다.

JFormattedTextField

public JFormattedTextField(AbstractFormatter formatter)

지정된 AbstractFormatter를 사용해 텍스트를 서식 지정하는 JFormattedTextField를 만듭니다.

  • 매개변수: formatter - 텍스트를 서식 지정하는 데 사용할 AbstractFormatter

JFormattedTextField

public JFormattedTextField(AbstractFormatterFactory factory)

지정된 AbstractFormatterFactory를 가진 JFormattedTextField를 만듭니다.

  • 매개변수: factory - 서식 지정을 제공하는 AbstractFormatterFactory

JFormattedTextField

public JFormattedTextField(AbstractFormatterFactory factory, Object value)

지정된 AbstractFormatterFactory와 초기 값을 가진 JFormattedTextField를 만듭니다.

  • 매개변수: factory - 서식 지정을 제공하는 AbstractFormatterFactory
  • 매개변수: value - 초기 값

JFormattedTextField

public JFormattedTextField(Object value)

지정된 값으로 초기화된 JFormattedTextField를 만듭니다. 이 생성자는 값의 유형에 기반한 AbstractFormatterFactory를 설정합니다.

  • 매개변수: value - 초기 값

JFormattedTextField

public JFormattedTextField(Format format)

지정된 Format을 사용해 값의 서식을 지정하는 JFormattedTextField를 만듭니다.

  • 매개변수: format - 값을 서식 지정하는 데 사용할 Format

JFormattedTextField

public JFormattedTextField(Format format, Object value)

지정된 Format을 사용해 값의 서식을 지정하고 초기 값으로 초기화된 JFormattedTextField를 만듭니다.

  • 매개변수: format - 값을 서식 지정하는 데 사용할 Format
  • 매개변수: value - 초기 값

setValue

public void setValue(Object value)

이 텍스트 필드에 표시될 값을 설정합니다.

  • 매개변수: value - 표시할 값

getValue

public Object getValue()

이 필드가 현재 나타내는 값의 유형을 반환합니다.

  • 반환값: 값의 유형

setFormatterFactory

public void setFormatterFactory(AbstractFormatterFactory tf)

이 필드가 현재 값을 서식 지정하는 데 사용할 팩토리를 설정합니다.

  • 매개변수: tf - 사용할 AbstractFormatterFactory

getFormatterFactory

public AbstractFormatterFactory getFormatterFactory()

현재 팩토리를 반환합니다.

  • 반환값: 현재 AbstractFormatterFactory

getFormatter

public AbstractFormatter getFormatter()

이 필드가 값을 서식 지정하고 분석하는 데 사용하는 AbstractFormatter를 반환합니다.

  • 반환값: 현재 AbstractFormatter

setFocusLostBehavior

public void setFocusLostBehavior(int behavior)

포커스를 잃었을 때 수행할 동작을 설정합니다.

  • 매개변수: behavior - COMMIT_OR_REVERT, COMMIT, REVERT, PERSIST 중 하나

getFocusLostBehavior

public int getFocusLostBehavior()

포커스를 잃었을 때 수행할 현재 동작을 반환합니다.

  • 반환값: COMMIT_OR_REVERT, COMMIT, REVERT, PERSIST 중 하나

commitEdit

public void commitEdit() throws ParseException

현재 편집 값의 커밋을 강제합니다. 값이 커밋되면 getValue()가 그 값을 반환합니다.

  • 예외: ParseException - 커밋 중 오류가 발생하는 경우

isEditValid

public boolean isEditValid()

현재 편집 중인 값이 유효한지 여부를 반환합니다.

  • 반환값: 현재 편집 값이 유효하면 true

더 알아보기