如何在 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);
}
}輸出
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP