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);
}
} 출력
