ユーザーがテキストフィールドに入力できる文字を制限します。 0または1の8桁のみを受け入れるようにJFormattedTextFieldを制限する方法を教えてください。JFormattedTextFieldは0または1に制限されます
2
A
答えて
5
多分あなたの原因を助けるためにJFormattedTextField
サンプルプログラムを使用するためにそこに必要とされていないJTextField
ためのパターンで使用DocumentFilter、:
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.text.AbstractDocument;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;
public class TextFieldLimit
{
private void createAndDisplayGUI()
{
JFrame frame = new JFrame("JTextField Limit");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setLocationByPlatform(true);
JPanel contentPane = new JPanel();
JTextField tfield = new JTextField(10);
/*
* Here we are using Document Filter
* to specify the size of the content
* i.e. 8 in your case.
*/
((AbstractDocument)tfield.getDocument()).setDocumentFilter(
new DocumentLimitAndInput(8));
contentPane.add(tfield);
frame.getContentPane().add(contentPane);
frame.pack();
frame.setVisible(true);
}
public static void main(String... args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
new TextFieldLimit().createAndDisplayGUI();
}
});
}
}
class DocumentLimitAndInput extends DocumentFilter
{
private int maxCharacters;
public DocumentLimitAndInput(int size)
{
maxCharacters = size;
}
public void insertString(FilterBypass fb, int offset
, String text, AttributeSet aset)
throws BadLocationException
{
int size = fb.getDocument().getLength() + text.length();
/*
* If the size is less than or equal to the permissible value
* and the input character is either 0 or 1, only in that
* case we will allow it to go through, else a BEEP
* sound is what a user will hear :-)
*/
if (size <= maxCharacters && (text.equals("0") || text.equals("1")))
super.insertString(fb, offset, text, aset);
else
Toolkit.getDefaultToolkit().beep();
}
public void replace(FilterBypass fb, int offset, int length
, String text, AttributeSet aset)
throws BadLocationException
{
int size = fb.getDocument().getLength() + text.length();
/*
* If the size is less than or equal to the permissible value
* and the input character is either 0 or 1, only in that
* case we will allow it to go through, else a BEEP
* sound is what a user will hear :-)
*/
if (size <= maxCharacters && (text.equals("0") || text.equals("1")))
super.replace(fb, offset, length, text, aset);
else
Toolkit.getDefaultToolkit().beep();
}
}
+0
+1、 'DocumentFilter'で簡単に達成できるときに' JFormattedTextField'に頼る理由: –
+0
私の編集のために私を赦してください、ちょっと手伝ってもらえませんでした:-) –
+0
それは動作します。お返事ありがとうございます – Sachindra
関連する問題
- 1. 最後のテーブルが1または0に制限されている結合を作成する方法は?
- 2. SharedPreferencesのスコープは1回に制限されていますか?
- 3. MultiAutoCompleteTextViewは1つのエントリに制限されます
- 4. java swingでJFormattedTextFieldのINPUTのTYPEを制限する方法は?
- 5. MediaElementAudioSourceはCORSアクセス制限のため0を出力します
- 6. 1または0
- 7. (0または1)
- 8. grep制限された文字 - 1行
- 9. Ejabberd送受信されたパケット数は1秒あたり61に制限されています
- 10. GoogleのV8エンジンは実際に1プロセスあたり1 VMに制限されていますか?
- 11. 1冊の本は最大3コースに制限されています。 Sql oracle
- 12. Spring Batchのチャンク処理は事実上1ステップに制限されますか?
- 13. NodeMCUのPWMは1つの周波数に制限されていますか?
- 14. OpenGLフレームバッファサイズの制限は0です
- 15. 0または1から0または1の関係をモデル化する?それは事ですか?
- 16. ませ制限されたグローバルん
- 17. 0または1つのトグルボタンがチェックされたToggleButtonグループ
- 18. デフォルトではSolrの結果は10に制限されます。
- 19. <unknown>:0:エラー:タイプ 'Key'が非プロトコルタイプ 'String'に制限されています
- 20. Tensorflowのexpは無限大ではなくmaxに制限されますか?
- 21. パラメータ化されたクエリはmssqlサーバーでは制限されていません
- 22. バックグラウンドワーカーには制限はありますか?テクニカルまたはコモンセンス
- 23. 1桁または2桁の制限Regex
- 24. Elasticsearchは、返されるネストされたオブジェクトの数を制限します
- 25. 64ビットライブラリは4GBに制限されていますか?
- 26. 「ホットデプロイ」には何が制限されていますか?
- 27. パッケージ名の制限はgrailsに適用されますか?
- 28. php(とcodeigniter)アップロードサイズは1MBに制限されています
- 29. PHP ZipArchiveは10MBに制限されています
- 30. log4netは約43000文字に制限されています
も参照してください。この[Q&A](のhttp:// 9895383/230513)。 – trashgod