Swing/FocusLostBehavior のバックアップ差分(No.1)
- バックアップ一覧
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- バックアップ を表示
- Swing/FocusLostBehavior へ行く。
- 追加された行はこの色です。
- 削除された行はこの色です。
--- 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 --- * 概要 [#summary] `JFormattedTextField`からフォーカスが失われた場合に実行するアクションを設定してテストします。 #download(https://drive.google.com/uc?export=view&id=1v2TdYvIAIuNFlxDutW3g3476R3mqqff2rQ) * サンプルコード [#sourcecode] #code(link){{ JFormattedTextField ftf = new JFormattedTextField(); try { MaskFormatter formatter = new MaskFormatter("UUUUUUUUUU"); ftf.setFormatterFactory(new DefaultFormatterFactory(formatter)); ftf.setFocusLostBehavior(JFormattedTextField.COMMIT) } catch (ParseException ex) { ex.printStackTrace(); } }} * 解説 [#explanation] - `COMMIT_OR_REVERT` -- `JFormattedTextField`のデフォルト -- フォーカスが失われたとき、正当な値の場合は値を確定し、不当な場合は前回値に戻す - `REVERT` -- フォーカスが失われたとき、常に前回値に戻す -- 編集を確定するには`JFormattedTextField#commitEdit()`を自前で呼ぶか、`DefaultFormatter.html#setCommitsOnValidEdit(true)`として文字列が編集されるたびに`commitEdit`を呼び出す必要がある - `COMMIT` -- フォーカスが失われたとき、現在の値を確定する -- 現在の値が正当な値でない場合でも、その値がそのまま残る - `PERSIST` -- フォーカスが失われたとき、何も処理しない * 参考リンク [#reference] - [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/JFormattedTextField.html JFormattedTextField (Java Platform SE 8)] * コメント [#comment] #comment #comment