Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 JTextField 내부의 문자 수를 어떻게 제한할 수 있습니까?

<시간/>

JTextFeld 사용자가 한 줄 형식으로 텍스트 값을 입력할 수 있도록 하는 가장 중요한 구성 요소 중 하나입니다. 사용자가 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 내부의 문자 수를 어떻게 제한할 수 있습니까?