[英]How do i use a MaskFormatter on a JFormattedTextField without knowing the length of the string?
所以我有一個JFormattedTextField
,我需要限制用戶輸入除字母和連字符以外的任何內容。 我不太確定如何在不明確知道要輸入的字符串長度的情況下使用MaskFormatter
。
我的代碼當前如下所示:
MaskFormatter formatter = new MaskFormatter();
formatter.setValidCharacters("ABCDEFGHIJKLMNOPQRSTUVWXYZabscedfghijklmnopqrstuvwxyz-");
JFormattedTextField firstNameTextField = new JFormattedTextField(formatter);
當我調用firstNameTextField.setText(getName())
,未設置文本,這給我留下了不可用的空文本字段。
任何幫助將不勝感激。 謝謝。
嘿,我遇到了類似的問題,我用jTextfield代替了jFormatter並用keyListener實現了相同的效果
繼承人代碼
jTextFieldName.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent evt) {
char c = evt.getKeyChar();
if(!Character.isDigit(c) || (c==KeyEvent.VK_BACK_SPACE) || (c==KeyEvent.VK_DELETE))
{
f.getToolkit().beep();
evt.consume();
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
}
});
這里的“ f”不過是JFrame
因為您不希望在字符串長度方面做出任何承諾,所以我有一個印象,如果您使用常規的JTextField和帶有KeyAdapter的KeyListener,則實現JFormattedTextField及其MaskFormatter的效果要容易得多。 您可以對照允許的字符串檢查每個擊鍵,然后接受字符或蜂鳴聲。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.