Swing/FocusLostBehavior のバックアップ(No.3)
- バックアップ一覧
 - 差分 を表示
 - 現在との差分 を表示
 - 現在との差分 - Visual を表示
 - ソース を表示
 - Swing/FocusLostBehavior へ行く。
  
- 1 (2017-01-10 (火) 15:29:21)
 - 2 (2017-02-20 (月) 19:40:38)
 - 3 (2017-02-28 (火) 17:51:53)
 - 4 (2017-12-12 (火) 13:49:00)
 - 5 (2018-02-15 (木) 14:23:42)
 - 6 (2019-08-09 (金) 18:37:41)
 - 7 (2021-04-10 (土) 02:26:28)
 - 8 (2025-01-03 (金) 08:57:02)
 - 9 (2025-01-03 (金) 09:01:23)
 - 10 (2025-01-03 (金) 09:02:38)
 - 11 (2025-01-03 (金) 09:03:21)
 - 12 (2025-01-03 (金) 09:04:02)
 - 13 (2025-06-19 (木) 12:41:37)
 - 14 (2025-06-19 (木) 12:43:47)
 
 
- category: swing folder: FocusLostBehavior title: JFormattedTextFieldからフォーカスが失われた場合の処理を設定する tags: [JFormattedTextField, Focus] author: aterai pubdate: 2017-01-09T03:41:25+09:00 description: JFormattedTextFieldからフォーカスが失われた場合に実行するアクションを設定してテストします。 image: https://drive.google.com/uc?export=view&id=1v2TdYvIAIuNFlxDutW3g3476R3mqqff2rQ
 
概要
JFormattedTextFieldからフォーカスが失われた場合に実行するアクションを設定してテストします。
Screenshot

Advertisement
サンプルコード
JFormattedTextField ftf = new JFormattedTextField();
try {
  MaskFormatter formatter = new MaskFormatter("UUUUUUUUUU");
  ftf.setFormatterFactory(new DefaultFormatterFactory(formatter));
  ftf.setFocusLostBehavior(JFormattedTextField.COMMIT)
} catch (ParseException ex) {
    ex.printStackTrace();
}
View in GitHub: Java, Kotlin解説
JFormattedTextField.COMMIT_OR_REVERTJFormattedTextFieldのデフォルト- フォーカスが失われたとき、正当な値の場合は値を確定し、不当な場合は前回値に戻す
 
JFormattedTextField.REVERT- フォーカスが失われたとき、常に前回値に戻す
 - 編集を確定するには
JFormattedTextField#commitEdit()を自前で呼ぶか、DefaultFormatter#setCommitsOnValidEdit(true)と設定(文字列が編集されるたびにcommitEditが自動的に呼び出される)する必要がある 
JFormattedTextField.COMMIT- フォーカスが失われたとき、現在の値を確定する
 - 現在の値が正当な値でない場合でも、その値がそのまま残る
 
JFormattedTextField.PERSIST- フォーカスが失われたとき、何も処理しない