您可以使用documentFilter来限制最大大小,请参阅本文档部分,其中提供了您需要的有效示例。
以这个为例,我使用了上面示例文件中的组件:
import java.awt.BorderLayout;import javax.swing.*;import javax.swing.event.*;import javax.swing.text.*;import components.documentSizeFilter;public class Test { public static void main(String[] args) { new Testframe().setVisible(true); } private static class Testframe extends Jframe{ private JTextField textField; private DefaultStyleddocument doc; private JLabel remaningLabel = new JLabel(); public Testframe() { setLayout(new BorderLayout()); textField = new JTextField(); doc = new DefaultStyleddocument(); doc.setdocumentFilter(new documentSizeFilter(500)); doc.adddocumentListener(new documentListener(){ @Override public void changedUpdate(documentEvent e) { updateCount();} @Override public void insertUpdate(documentEvent e) { updateCount();} @Override public void removeUpdate(documentEvent e) { updateCount();} }); textField.setdocument(doc); updateCount(); add(textField, BorderLayout.CENTER); add(remaningLabel, BorderLayout.SOUTH); setLocationRelativeTo(null); pack(); } private void updateCount() { remaningLabel.setText((500 -doc.getLength()) + " characters remaining"); } }}


