|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.text.JTextComponent
javax.swing.JTextField
javax.swing.JFormattedTextField
public class JFormattedTextField
JFormattedTextField
는,JTextField
를 확장해, 임의의 값을 포맷 하거나 사용자가 텍스트를 편집한 후에의 특정의 객체를 취득하거나 하는 기능을 추가합니다. JFormattedTextField
의 일자 편집용의 설정예를 다음에 듭니다.
JFormattedTextField ftf = new JFormattedTextField(); ftf.setValue(new Date());
JFormattedTextField
가 한 번 생성되면(자),PropertyChangeListener
를 추가해, 프로퍼티명 value
를 사용해 PropertyChangeEvent
를 대기하는 것으로, 변경의 편집을 대기할 수 있습니다.
JFormattedTextField
에 의해, 포커스가 없어졌을 경우에 실행하는 액션의 설정이 가능하게 됩니다. 다음의 설정이 준비되어 있습니다.
값 | 설명 |
---|---|
JFormattedTextField.REVERT | getValue 의 표시에 맞도록(듯이), 표시를 바탕으로 되돌린다. 현재의 편집은 없어질 가능성이 있다
|
JFormattedTextField.COMMIT | 현재의 값을 확정. 현재의 값이 AbstractFormatter 에 의한 정당한 값은 아니고,ParseException 가 throw 되는 경우, 값은 변경되지 않고, 편집된 값이 그대로 남는다
|
JFormattedTextField.COMMIT_OR_REVERT | COMMIT 와 거의 같다. 값이 정당한 것이 아닌 경우는 REVERT 와 같이
|
JFormattedTextField.PERSIST | 아무것도 처리하지 않는다. 새로운 AbstractFormatter 의 취득, 값의 갱신, 어느쪽이나 실행하지 않는다
|
JFormattedTextField.COMMIT_OR_REVERT
입니다. 상세한 것에 대하여는,setFocusLostBehavior(int)
를 참조해 주세요.
JFormattedTextField
에 의해, 현재 편집중의 값이 부정한 경우에서도 포커스는 이동이 가능하게 됩니다. JFormattedTextField
의 편집 상태가 부정한 경우에 포커스를 잠그려면 ,InputVerifier
를 접속합니다. 이러한 InputVerifier
를 구현한 코드의 일부를 예로서 듭니다.
public class FormattedTextFieldVerifier extends InputVerifier { public boolean verify(JComponent input) { if (input instanceof JFormattedTextField) { JFormattedTextField ftf = (JFormattedTextField) input; AbstractFormatter formatter = ftf.getFormatter(); if (formatter ! = null) { String text = ftf.getText(); try { formatter.stringToValue(text); return true; } catch (ParseException pe) { return false; } } } return true; } public boolean shouldYieldFocus(JComponent input) { return verify(input); } }
commitEdit
를 호출하는 것도 값을 확정할 수 있습니다.
JFormattedTextField
는 그 자체에서는 포맷을 실시하지 않고,JFormattedTextField.AbstractFormatterFactory
의 인스턴스로부터 취득되는,JFormattedTextField.AbstractFormatter
의 인스턴스로 포맷을 실시합니다. JFormattedTextField.AbstractFormatter
의 인스턴스는, 액티브하게 되었을 때에 install
메소드로부터 통지를 받아JFormattedTextField.AbstractFormatter
는 그 시점에서 필요한 객체를 인스톨 할 수 있습니다. 일반적으로은 DocumentFilter
가 인스톨 됩니다. JFormattedTextField
로 AbstractFormatter
가 불필요하게 되었을 경우는, 똑같이 uninstall
가 불려 갑니다.
JFormattedTextField
는, 일반적으로, 포커스를 취득 또는 상실했을 때에,AbstractFormat
에 대한 AbstractFormatterFactory
를 조회합니다. 다만, 이것은 포커스 상실 정책에 근거해 변경할 수 있습니다. 포커스 상실 정책가 JFormattedTextField.PERSIST
이며,JFormattedTextField
가 편집되고 있는 경우,AbstractFormatterFactory
는 값이 확정될 때까지 조회되지 않습니다. 같이 포커스 상실 정책가 JFormattedTextField.COMMIT
이며, 예외가 stringToValue
로부터 throw 되는 경우는,AbstractFormatterFactory
는 포커스가 상실 또는 취득될 때까지 조회되지 않습니다.
JFormattedTextField.AbstractFormatter
는, 확정치의 JFormattedTextField
에의 설정 타이밍도 결정합니다. JFormattedTextField.AbstractFormatter
속에는, 편집마다 새롭게 값을 생성하는 것도 있어, 전혀 값을 확정하지 않는 것도 있습니다. commitEdit
를 호출하는 것으로, 현재의 값을 현재의 JFormattedTextField.AbstractFormatter
로부터 강제적으로 취득할 수 있게 됩니다. commitEdit
는 JFormattedTextField
로 [return] 를 누를 때마다 불려 갑니다.
AbstractFormatterFactory
가 명시적으로 설정되어 있지 않은 경우로, 값이 null 이외 때에는,setValue
가 불려 간 뒤에, 값의 형태 Class
에 근거해 AbstractFormatterFactory
가 설정됩니다. 예를 들어, 다음의 코드에서는, 적절한 AbstractFormatterFactory
와 AbstractFormatter
가, 수치의 포맷 처리를 위해서(때문에) 생성됩니다.
JFormattedTextField tf = new JFormattedTextField(); tf.setValue(new Number(100));
경고:AbstractFormatter
는, 일반적으로,Document
에 DocumentFilter
를 인스톨 해,JFormattedTextField
에 NavigationFilter
를 인스톨 하기 위한(해), 이 2 개(살)을 독자적으로 인스톨 하지 말아 주세요. 독자적으로 인스톨 하면(자), 동작이 기묘하게 되어,AbstractFormatter
의 편집 정책가 강화되지 않게 됩니다.
경고: Swing 는 thread에 대해서 안전하지는 않습니다. 자세한 것은,「Swing's Threading Policy」를 참조해 주세요.
경고: 이 클래스의 직렬화 된 객체는, 향후의 Swing 릴리스와 호환은 아니게 될 예정입니다. 현재의 직렬화의 지원는, 단기간의 운용이나, 같은 버젼의 Swing 를 실행하는 어플리케이션간의 RMI 에 적절하고 있습니다. JDK Version 1.4 이후, 모든 JavaBeans™ 의 장기간의 운용 지원는,java.beans
패키지에 추가되고 있습니다. 자세한 것은,XMLEncoder
를 참조해 주세요.
상자의 클래스의 개요 | |
---|---|
static class |
JFormattedTextField.AbstractFormatter
AbstractFormatter 의 인스턴스는, Object 로부터 String 및 String 로부터 Object 에의 변환을 처리하기 위해서 JFormattedTextField 로 사용됩니다. |
static class |
JFormattedTextField.AbstractFormatterFactory
AbstractFormatterFactory 의 인스턴스는 JFormattedTextField 로 사용되어 값의 포맷에 사용되는 AbstractFormatter 의 인스턴스를 가져옵니다. |
클래스 javax.swing. JTextField 로부터 상속된 상자의 클래스/인터페이스 |
---|
JTextField.AccessibleJTextField |
클래스 javax.swing.text. JTextComponent 로부터 상속된 상자의 클래스/인터페이스 |
---|
JTextComponent.AccessibleJTextComponent , JTextComponent.DropLocation , JTextComponent.KeyBinding |
클래스 javax.swing. JComponent 로부터 상속된 상자의 클래스/인터페이스 |
---|
JComponent.AccessibleJComponent |
클래스 java.awt. Container 로부터 상속된 상자의 클래스/인터페이스 |
---|
Container.AccessibleAWTContainer |
클래스 java.awt. Component 로부터 상속된 상자의 클래스/인터페이스 |
---|
Component.AccessibleAWTComponent , Component.BaselineResizeBehavior , Component.BltBufferStrategy , Component.FlipBufferStrategy |
필드의 개요 | |
---|---|
static int |
COMMIT
포커스 상실시에 commitEdit 를 호출하는 것을 지정하는 정수입니다. |
static int |
COMMIT_OR_REVERT
포커스 상실시에 commitEdit 를 호출하는 것을 지정하는 정수입니다. |
static int |
PERSIST
포커스 상실시에 편집되고 있는 값을 남겨 두는 것을 지정하는 정수입니다. |
static int |
REVERT
포커스 상실시에, 편집중의 값을 JFormattedTextField 의 현재의 값세트에 되돌리는 것을 지정하는 정수입니다. |
클래스 javax.swing. JTextField 로부터 상속된 필드 |
---|
notifyAction |
클래스 javax.swing.text. JTextComponent 로부터 상속된 필드 |
---|
DEFAULT_KEYMAP , FOCUS_ACCELERATOR_KEY |
클래스 javax.swing. JComponent 로부터 상속된 필드 |
---|
accessibleContext , listenerList , TOOL_TIP_TEXT_KEY , ui , UNDEFINED_CONDITION , WHEN_ANCESTOR_OF_FOCUSED_COMPONENT , WHEN_FOCUSED , WHEN_IN_FOCUSED_WINDOW |
클래스 java.awt. Component 로부터 상속된 필드 |
---|
BOTTOM_ALIGNMENT , CENTER_ALIGNMENT , LEFT_ALIGNMENT , RIGHT_ALIGNMENT , TOP_ALIGNMENT |
인터페이스 javax.swing. SwingConstants 로부터 상속된 필드 |
---|
BOTTOM , CENTER , EAST , HORIZONTAL , LEADING , LEFT , NEXT , NORTH , NORTH_EAST , NORTH_WEST , PREVIOUS , RIGHT , SOUTH , SOUTH_EAST , SOUTH_WEST , TOP , TRAILING , VERTICAL , WEST |
인터페이스 java.awt.image. ImageObserver 로부터 상속된 필드 |
---|
ABORT , ALLBITS , ERROR , FRAMEBITS , HEIGHT , PROPERTIES , SOMEBITS , WIDTH |
생성자 의 개요 | |
---|---|
JFormattedTextField ()
AbstractFormatterFactory 를 사용하지 않고 JFormattedTextField 를 생성합니다. |
|
JFormattedTextField (Format format)
JFormattedTextField 를 생성합니다. |
|
JFormattedTextField (JFormattedTextField.AbstractFormatter formatter)
지정된 AbstractFormatter 를 사용해 JFormattedTextField 를 생성합니다. |
|
JFormattedTextField (JFormattedTextField.AbstractFormatterFactory factory)
지정된 AbstractFormatterFactory 를 사용해 JFormattedTextField 를 생성합니다. |
|
JFormattedTextField (JFormattedTextField.AbstractFormatterFactory factory,
Object currentValue)
지정된 AbstractFormatterFactory 와 초기치를 사용해 JFormattedTextField 를 생성합니다. |
|
JFormattedTextField (Object value)
지정된 값을 사용해 JFormattedTextField 를 생성합니다. |
메소드의 개요 | |
---|---|
void |
commitEdit ()
현재의 값을 AbstractFormatter 로부터 강제적으로 취득해, 현재의 값으로 해서 설정합니다. |
Action [] |
getActions ()
에디터의 커멘드 리스트를 꺼냅니다. |
int |
getFocusLostBehavior ()
포커스 상실시의 동작을 돌려줍니다. |
JFormattedTextField.AbstractFormatter |
getFormatter ()
현재의 값의 포맷과 구문 분석에 사용되는 AbstractFormatter 를 돌려줍니다. |
JFormattedTextField.AbstractFormatterFactory |
getFormatterFactory ()
현재의 AbstractFormatterFactory 를 돌려줍니다. |
String |
getUIClassID ()
UI 의 클래스 ID 를 돌려줍니다. |
Object |
getValue ()
최신의 유효한 값을 돌려줍니다. |
protected void |
invalidEdit ()
사용자가 무효인 값을 입력했을 경우에 불려 갑니다. |
boolean |
isEditValid ()
현재 편집중의 값이 유효한 경우에 true 를 돌려줍니다. |
protected void |
processFocusEvent (FocusEvent e)
FocusEvent.FOCUS_GAINED 나 FocusEvent.FOCUS_LOST 등의 임의의 포커스 이벤트를 처리합니다. |
protected void |
processInputMethodEvent (InputMethodEvent e)
InputMethodEvent.INPUT_METHOD_TEXT_CHANGED 나 InputMethodEvent.CARET_POSITION_CHANGED 등의 임의의 입력 메소드 이벤트를 처리합니다. |
void |
setDocument (Document doc)
에디터를 텍스트 문서에 관련짓습니다. |
void |
setFocusLostBehavior (int behavior)
포커스 상실시의 동작을 설정합니다. |
protected void |
setFormatter (JFormattedTextField.AbstractFormatter format)
현재의 AbstractFormatter 를 설정합니다. |
void |
setFormatterFactory (JFormattedTextField.AbstractFormatterFactory tf)
AbstractFormatterFactory 를 설정합니다. |
void |
setValue (Object value)
현재의 AbstractFormatterFactory 로부터 취득한 AbstractFormatter 로 포맷 되는 값을 설정합니다. |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , wait , wait , wait |
필드의 상세 |
---|
public static final int COMMIT
commitEdit
를 호출하는 것을 지정하는 정수입니다. 새로운 값의 확정시에 ParseException
가 throw 되면(자), 무효인 값이 그대로 남게 됩니다.
setFocusLostBehavior(int)
,
정수 필드치 public static final int COMMIT_OR_REVERT
commitEdit
를 호출하는 것을 지정하는 정수입니다. 새로운 값의 확정시에 ParseException
가 throw 되면(자), 원의 값에 되돌려집니다.
setFocusLostBehavior(int)
,
정수 필드치 public static final int REVERT
JFormattedTextField
의 현재의 값세트에 되돌리는 것을 지정하는 정수입니다.
setFocusLostBehavior(int)
,
정수 필드치 public static final int PERSIST
setFocusLostBehavior(int)
,
정수 필드치 생성자 의 상세 |
---|
public JFormattedTextField()
AbstractFormatterFactory
를 사용하지 않고 JFormattedTextField
를 생성합니다. 특정의 형태의 값을 편집하도록(듯이) JFormattedTextField
를 설정하는 경우는,setMask
또는 setFormatterFactory
를 사용해 주세요.
public JFormattedTextField(Object value)
value
의 형태에 근거한 AbstractFormatterFactory
가 생성됩니다.
value
- JformattedTextField 의 초기치public JFormattedTextField(Format format)
JFormattedTextField
를 생성합니다. format
는 적절한 AbstractFormatter
에 랩 되어AbstractFormatter
는 AbstractFormatterFactory
에 랩 됩니다.
format
- AbstractFormatter 의 검색에 사용되는 포맷public JFormattedTextField(JFormattedTextField.AbstractFormatter formatter)
AbstractFormatter
를 사용해 JFormattedTextField
를 생성합니다. AbstractFormatter
는 AbstractFormatterFactory
에 배치됩니다.
formatter
- 포맷으로 사용되는 AbstractFormatterpublic JFormattedTextField(JFormattedTextField.AbstractFormatterFactory factory)
AbstractFormatterFactory
를 사용해 JFormattedTextField
를 생성합니다.
factory
- 포맷에 사용되는 AbstractFormatterFactorypublic JFormattedTextField(JFormattedTextField.AbstractFormatterFactory factory, Object currentValue)
AbstractFormatterFactory
와 초기치를 사용해 JFormattedTextField
를 생성합니다.
factory
- 포맷에 사용되는 AbstractFormatterFactory
currentValue
- 사용되는 초기치메소드의 상세 |
---|
public void setFocusLostBehavior(int behavior)
JFormattedTextField.COMMIT_OR_REVERT
,JFormattedTextField.REVERT
,JFormattedTextField.COMMIT
, 또는 JFormattedTextField.PERSIST
의 어느 쪽인가에 됩니다. AbstractFormatter
안에는, 변경 발생시로 변경을 푸쉬 하는 것이 있습니다.
건네받는 객체의 값이 전술의 값이 아닌 경우는 IllegalArgumentException
가 throw 됩니다.
이 프로퍼티의 디폴트 값는 JFormattedTextField.COMMIT_OR_REVERT
입니다.
behavior
- 포커스 상실시의 동작
IllegalArgumentException
- 동작이 지정된 값으로 나타나는 것이 아닌 경우public int getFocusLostBehavior()
COMMIT_OR_REVERT
,COMMIT
,REVERT
, 또는 PERSIST
의 머지않아인가입니다. AbstractFormatter
속에는, 변경 발생시로 변경을 푸쉬 하는 것이 있습니다. 그 때문에, 이 값은 동작에는 영향을 주지 않습니다.
public void setFormatterFactory(JFormattedTextField.AbstractFormatterFactory tf)
AbstractFormatterFactory
를 설정합니다. AbstractFormatterFactory
는, 표시치의 포맷, 및 편집 정책 강화에 사용되는 AbstractFormatter
의 인스턴스를 돌려줄 수가 있습니다.
이 메소드 또는 생성자 으로 AbstractFormatterFactory
가 명시적으로 설정되어 있지 않은 경우,AbstractFormatterFactory
, 그리고 결과적으로 AbstractFormatter
는 값의 Class
에 근거해 사용됩니다. Number
에는 NumberFormatter
,Dates
에는 DateFormatter
, 그 이외에는 DefaultFormatter
가 사용됩니다.
이것은 JavaBeans 바운드 프로퍼티입니다.
tf
- AbstractFormatter
의 인스턴스 검색에 사용되는 AbstractFormatterFactory
public JFormattedTextField.AbstractFormatterFactory getFormatterFactory()
AbstractFormatterFactory
를 돌려줍니다.
AbstractFormatter
의 특정에 사용된다
AbstractFormatterFactory
setFormatterFactory(javax.swing.JFormattedTextField.AbstractFormatterFactory)
protected void setFormatter(JFormattedTextField.AbstractFormatter format)
AbstractFormatter
를 설정합니다.
일반적으로,AbstractFormatter
를 호출하는 대신에,AbstractFormatterFactory
또는 그 값을 설정합니다. JFormattedTextField
는, 이것을 JFormattedTextField
변경 상태로서 호출해, 값의 리셋를 요구합니다. JFormattedTextField
는 AbstractFormatterFactory
로부터 취득한 AbstractFormatter
를 건네줍니다.
이것은 JavaBeans 바운드 프로퍼티입니다.
format
- 포맷으로 사용되는 AbstractFormattersetFormatterFactory(javax.swing.JFormattedTextField.AbstractFormatterFactory)
public JFormattedTextField.AbstractFormatter getFormatter()
AbstractFormatter
를 돌려줍니다.
public void setValue(Object value)
AbstractFormatterFactory
로부터 취득한 AbstractFormatter
로 포맷 되는 값을 설정합니다. AbstractFormatterFactory
가 지정되어 있지 않은 경우는,value
의 형태에 근거해 AbstractFormatter
의 생성을 시도합니다. 이 프로퍼티의 디폴트 값는 null 입니다.
이것은 JavaBeans 바운드 프로퍼티입니다.
value
- 표시되는 현재의 값public Object getValue()
AbstractFormatter
의 편집 정책에 근거해, 현재의 값이 돌려주어지지 않은 경우가 있습니다. 현재 편집되고 있는 값은 getValue
의 뒤 commitEdit
를 호출하는 것에 의해 취득할 수 있습니다.
public void commitEdit() throws ParseException
AbstractFormatter
로부터 강제적으로 취득해, 현재의 값으로 해서 설정합니다. AbstractFormatter
가 현재 인스톨되어 있지 않은 경우는 아무것도 실행하지 않습니다.
ParseException
- AbstractFormatter
가
현재의 값을 포맷 할 수 없는 경우public boolean isEditValid()
AbstractFormatter
로 관리됩니다. 이 값을 public 로 설정하는 기능은 없습니다.
protected void invalidEdit()
protected void processInputMethodEvent(InputMethodEvent e)
InputMethodEvent.INPUT_METHOD_TEXT_CHANGED
나 InputMethodEvent.CARET_POSITION_CHANGED
등의 임의의 입력 메소드 이벤트를 처리합니다.
JTextComponent
내의 processInputMethodEvent
e
- InputMethodEvent
InputMethodEvent
protected void processFocusEvent(FocusEvent e)
FocusEvent.FOCUS_GAINED
나 FocusEvent.FOCUS_LOST
등의 임의의 포커스 이벤트를 처리합니다.
Component
내의 processFocusEvent
e
- FocusEvent
FocusEvent
public Action [] getActions()
JTextField
내의 getActions
public String getUIClassID()
JTextField
내의 getUIClassID
JComponent.getUIClassID()
public void setDocument(Document doc)
JTextField
내의 setDocument
doc
- 표시 및 편집하는 문서JTextComponent.getDocument()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.