空白をJTextFieldに入れることをユーザーに禁止する方法を教えてください。
空白を書き込むこともできません。JTextFieldに空白がない
1
A
答えて
1
キーマップを使用できます。 this example禁止スペースをチェックしてください次のようになり、次のようになります。
KeyStroke keyStroke = KeyStroke.getKeyStroke(Character.valueOf(' '), 0);
textField.getInputMap(JComponent.WHEN_FOCUSED).put(keyStroke, "none");
3
私はあなたがinsertStringメソッドをオーバーライドする拡張PlainDocumentでのJTextFieldのドキュメントを設定することをお勧め。以下のように(また、素敵なサイズを制限するために...)
何か:
Document doc = new PlainDocument() {
@Override
public void insertString(int offs, String str, AttributeSet attr)
throws BadLocationException {
String newstr = str.replaceAll(" ", ""); // could use "\\s" instead of " "
super.insertString(offs, newstr, attr);
}
@Override
public void replace(int offs, int len, String str, AttributeSet attr)
throws BadLocationException {
String newstr = str.replaceAll(" ", ""); // could use "\\s" instead of " "
super.replace(offs, len, newstr, attr);
}
};
textField.setDocument(doc);
EDIT:
replace
も実装/オーバーライドする必要があります!
2
おそらく、これについてはDocument
にDocumentFilter
を使用して、型付き、貼り付けまたはその他の方法で挿入されたスペースを削除することをお勧めします。私は、このテクニックを示している小さなSwingプログラムに関するウェブログエントリを書きました(この場合、整数入力のみを許可する) - DescriptionSource。
Document
のサブタイプを拡張することは可能ですが、エラーが発生しやすくなり、特定の実装につながります。
キープレスをインターセプトしようとすると、実際には機能しません(間違った抽象レベルにあるため、貼り付けやdndなどのテキストを挿入することができなくなります)。
JFormattedTextField
は、すべてのUIが大きな時間を吸っているかどうかを確認する良い方法です。
関連する問題
- 1. 移行が機能しない(空白:空白→空白:正常)
- 2. 入力後にJTextfieldを空白にする方法
- 3. 空白が空白になっていますページ
- 4. HTMLの空白がない
- 5. ログインページが空白になる
- 6. Gridcontrolが空白になる
- 7. 浮動小数点の空白が空白になる
- 8. 空欄に空白が埋め込まれていない
- 9. JTextFieldが空白であるかどうかを検出する方法は?
- 10. JTextFieldが空でないかどうかをチェックする
- 11. ドロップダウンボックスに空白/空白が含まれています
- 12. 文字列の空白でない不思議な空白
- 13. ランダムな文字が空白になる
- 14. なぜHttpContext.Current.User.Identity.Nameが空白になる
- 15. 空白がFirefoxで機能しない
- 16. ウェブスクレイピングで空白がない場合
- 17. 白い空白が100%の幅まで
- 18. REG EXPが空白または空白
- 19. 空白のないOracle regexp
- 20. ダウンロード中にUIWebViewが空白になる
- 21. 空のjtextfield/jpassword削除音
- 22. VBA文字列に空白がなく、スペースがない場合
- 23. Nodemailer - 空白でないファイルが空白として送信される
- 24. Tkinterラベルイメージが空白になる
- 25. ワードプレスサイトの.htaccessが空白になる
- 26. IE内のiframeが空白になる
- 27. テンソルボードが空白になるページ
- 28. スワップポストリクエストエンコーディングプラス記号が空白になる
- 29. Pimcoreインストールページが空白になる
- 30. SSISエクスポートデータが空白になります
DocumentFilterが最適です。また、insertString以外のテキストを挿入するメソッドもあります。 –
@トム:確かに、私はそれを見たことがありません。 "フィルタリング"のための良い方法(私は今知っている)! –
ニースですが、replaceStringも実装しなければなりませんでした.JTextFieldではinsertStringが使われていないようです。 – lapo