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

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


JTextFeld は、ユーザーが単一行形式でテキスト値を入力できるようにする最も重要なコンポーネントの1つです。 ユーザーがJTextFieldに入力できる文字数を制限できます PlainDocumentを使用して実現できます クラス。

以下の例では、 PlainDocumentを使用してロジックを実装できます。 クラスであるため、ユーザーは最大10文字を入力できますが、10文字を超える場合は入力できません。

import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
class JTextFieldLimit extends PlainDocument {
   private int limit;
   JTextFieldLimit(int limit) {
      super();
      this.limit = limit;
   }
   JTextFieldLimit(int limit, boolean upper) {
      super();
      this.limit = limit;
   }
   public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException {
      if (str == null)
         return;
      if ((getLength() + str.length()) <= limit) {
         super.insertString(offset, str, attr);
      }
   }
}
public class JTextFieldLimitTest extends JFrame {
   JTextField textfield;
   JLabel label;
   public static void main(String[]args){
      new JTextFieldLimitTest().GUI();
   }
   public void GUI() {
      setLayout(new FlowLayout());
      label = new JLabel("max 10 chars");
      textfield = new JTextField(15);
      add(label);
      add(textfield);
      textfield.setDocument(new JTextFieldLimit(10));
      setSize(350,300);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setVisible(true);
   }
}

出力

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


  1. JavaでJTextArea内の行番号を表示するにはどうすればよいですか?

    JTextArea JTextComponentのサブクラスです 複数行のテキストです テキストを表示したり、ユーザーがテキストを入力できるようにするコンポーネント。 JTextArea CaretListenerを生成できます カレット更新イベントをリッスンできるインターフェース。デフォルトでは、JTextAreaは行番号を表示しません。 Dを使用してコードをカスタマイズする必要があります ocumentListener インターフェイス。 例 import java.awt.*; import javax.swing.*; import javax.swing.event.*

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

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