簡體   English   中英

如何在不知道字符串長度的情況下在JFormattedTextField上使用MaskFormatter?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM