Swing/MaskFormatterPlaceholder の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/MaskFormatterPlaceholder へ行く。
- Swing/MaskFormatterPlaceholder の差分を削除
--- category: swing folder: MaskFormatterPlaceholder title: JFormattedTextFieldにプレースホルダ文字列を追加したMaskFormatterを設定する tags: [JFormattedTextField, MaskFormatter, FormatterFactory] author: aterai pubdate: 2017-03-13T14:44:45+09:00 description: JFormattedTextFieldにプレースホルダ文字やプレースホルダ文字列を追加したMaskFormatterを設定します。 image: https://drive.google.com/uc?id=1jr_CEn9HFdHVL7hiYobxNFuuuVvnlXuyrA --- * 概要 [#summary] `JFormattedTextField`にプレースホルダ文字やプレースホルダ文字列を追加した`MaskFormatter`を設定します。 #download(https://drive.google.com/uc?id=1jr_CEn9HFdHVL7hiYobxNFuuuVvnlXuyrA) * サンプルコード [#sourcecode] #code(link){{ MaskFormatter formatter2 = new MaskFormatter(mask); formatter2.setPlaceholderCharacter('_'); formatter2.setPlaceholder("000-0000"); field2.setFormatterFactory(new DefaultFormatterFactory(formatter2)); }} * 解説 [#explanation] - `new MaskFormatter("###-####")` -- プレースホルダなしの`MaskFormatter`を設定 - `MaskFormatter#setPlaceholderCharacter('_')` -- プレースホルダ文字として`_`を設定 - `MaskFormatter#setPlaceholder("000-0000")` -- プレースホルダ文字として`_`を、プレースホルダ文字列として`000-0000`を設定 -- プレースホルダ文字と違って、プレースホルダ文字列は初回のみ使用される ---- - [https://bugs.openjdk.java.net/browse/JDK-6462028 JDK-6462028 MaskFormatter API documentation refers to getDisplayValue - Java Bug System] - [https://bugs.openjdk.org/browse/JDK-6462028 JDK-6462028 MaskFormatter API documentation refers to getDisplayValue - Java Bug System] -- [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/text/MaskFormatter.html MaskFormatter (Java Platform SE 8)] -- ドキュメントには`formatter.getDisplayValue(tf, "123");`とのコード例が記述されているが`MaskFormatter#getDisplayValue(...)`というメソッドは存在しない - [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/JFormattedTextField.html#JFormattedTextField-- JFormattedTextField (Java Platform SE 8)] -- 「特定の型の値を編集するように`JFormattedTextField`を設定する場合は、`setMask`または`setFormatterFactory`を使用してください。」と記述されているが`JFormattedTextField`に`setMask`というメソッドは存在しない -- [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/text/MaskFormatter.html#setMask-java.lang.String- MaskFormatter#setMask(String)]のことかもしれない * 参考リンク [#reference] - [https://docs.oracle.com/javase/jp/8/docs/api/javax/swing/text/MaskFormatter.html MaskFormatter (Java Platform SE 8)] - [https://bugs.openjdk.java.net/browse/JDK-6462028 JDK-6462028 MaskFormatter API documentation refers to getDisplayValue - Java Bug System] - [https://bugs.openjdk.org/browse/JDK-6462028 JDK-6462028 MaskFormatter API documentation refers to getDisplayValue - Java Bug System] * コメント [#comment] #comment #comment