请教一个问题 java中哪个控件,可以限制每行只能输入10个英文字符

import javax.print.attribute.AttributeSet;import javax.swing.JFrame;import javax.swing.JTextField;import javax.swing.text.BadLocationException;import javax.swing.text.PlainDocument;public class Test2 { public static void main(String[] args) { JFrame frame = new JFrame();frame.get...
请教一个问题 java中哪个控件,可以限制每行只能输入10个英文字符
JTextField

import java.awt.FlowLayout;

import javax.print.attribute.AttributeSet;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

public class Test2 {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.getContentPane().setLayout(new FlowLayout());
JTextField field = new JTextField(15);
field.setDocument(new FixedLengthDocument(10));

frame.add(field);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 200);
frame.setVisible(true);
}

public static class FixedLengthDocument extends PlainDocument {
private int length;
public FixedLengthDocument(int length) {
super();
this.length = length;
}

@Override
public void insertString(int offs, String str,
javax.swing.text.AttributeSet a) throws BadLocationException {
if (str == null) {
return;
}
if ((getLength() + str.length()) <= length) {
char[] upper = str.toCharArray();
int length = 0;
for (int i = 0; i < upper.length; i++) {
if (upper[i] >= '0' && upper[i] <= '9') {
upper[length++] = upper[i];
}
}
super.insertString(offs, str, a);
}
}

}
}2009-07-15
Swing的东东。。闪。2009-07-15
jTextField2009-07-15
mengvlog 阅读 8 次 更新于 2025-07-19 21:25:10 我来答关注问题0
檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部