Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaでJPasswordField内の桁数を制限するにはどうすればよいですか?


JPasswordField JTextFieldのサブクラスです また、JPasswordFieldに入力された各文字は、エコーに置き換えることができます。 キャラクター。これにより、パスワードの機密入力が可能になります。 JPasswordFieldの重要なメソッドは、 getPassword()、getText()、getAccessibleContext()です。 デフォルトでは、JPasswordField内に任意の桁数を入力できます。 DocumentFilterクラスを実装して、ユーザーが入力する数字を制限する場合 replace()をオーバーライドする必要があります メソッド。

構文
public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException

import java.awt.*;
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
public class JPasswordFieldDigitLimitTest extends JFrame {
   private JPasswordField passwordField;
   private JPanel panel;
   public JPasswordFieldDigitLimitTest() {
      panel = new JPanel();
      ((FlowLayout) panel.getLayout()).setHgap(2);
      panel.add(new JLabel("Enter Pin: "));
      passwordField = new JPasswordField(4);
      PlainDocument document = (PlainDocument) passwordField.getDocument();
      document.setDocumentFilter(new DocumentFilter() {
         @Override
         public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException {
            String string = fb.getDocument().getText(0, fb.getDocument().getLength()) + text;
               if (string.length() <= 4) {
                  super.replace(fb, offset, length, text, attrs);
               }
         }
      });
      panel.add(passwordField);
      add(panel);
      setSize(400, 300);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String[] args) {
      new JPasswordFieldDigitLimitTest();
   }
}
出力

JavaでJPasswordField内の桁数を制限するにはどうすればよいですか?


  1. Javaで数を数えるプログラムを実装するにはどうすればよいですか?

    プログラムはJLabelを使用します カウントラベルを保持するには、 JTextField 数値を保持するコンポーネントカウント 、 JButton 追加を作成するコンポーネント 、削除 およびリセット ボタン。追加ボタンをクリックすると、JTextFieldのカウントがインクリメントされます 投稿者 1 削除ボタンをクリックすると、カウントが「1」ずつ減らされます。 [リセット]ボタンをクリックすると、リセットされます 0へのカウント 。 例 import java.awt.*; import java.awt.event.*; import javax.swing.*; publ

  2. JavaでJTextField内の文字数を制限するにはどうすればよいですか?

    JTextFeld は、ユーザーが単一行形式でテキスト値を入力できるようにする最も重要なコンポーネントの1つです。 ユーザーがJTextFieldに入力できる文字数を制限できます PlainDocumentを使用して実現できます クラス。 以下の例では、 PlainDocumentを使用してロジックを実装できます。 クラスであるため、ユーザーは最大10文字を入力できますが、10文字を超える場合は入力できません。 例 import java.awt.*; import javax.swing.*; import javax.swing.text.*; class JTextFieldLi