`
plkong
  • 浏览: 177539 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

自定义限制JTextArea输入的字符数

 
阅读更多

 

import javax.swing.JTextArea;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

public class LimitNumTextArea extends JTextArea {
	public LimitNumTextArea(int length) {
		setDocument(new LimitNumDocument(length));
	}

	private class LimitNumDocument extends PlainDocument {
		private int fLength = -1; // 可任意输入

		public LimitNumDocument(int length) {
			fLength = length;
		}

		public void insertString(int offs, String str, AttributeSet attr)
				throws BadLocationException {
			int originalLength = getLength();
			if (originalLength <= 0) {
				super.insertString(offs, str, attr);
				return;
			}

			char[] input = str.toCharArray();
			int inputLength = 0;
			for (int i = 0; i < input.length; i++) {
				if (originalLength + inputLength >= fLength) {
					break;
				}
				inputLength++;
			}

			super.insertString(offs, new String(input, 0, inputLength), attr);
		}
	}
}
 
分享到:
评论

相关推荐

    TextAlignment:通过JAVA文件指定一行中的字符数

    1. **字符串操作**:为了限制一行文本的字符数,你需要先获取原始文本,然后使用`substring()`方法截取特定长度的子串。例如,`text.substring(0, desiredLength)`将返回包含最多`desiredLength`个字符的子串。 2. ...

    Java swt 实现的文本框 自动匹配数据 演示以及源代码

    当用户在文本框中输入字符时,触发事件处理函数,更新匹配列表。 ```java autoCompleteText.addModifyListener(e -&gt; { // 在这里处理文本改变的逻辑 }); ``` 4. **匹配算法**: 实现一个算法来查找与当前输入...

    Swing用户界面组件

    可以限制输入字符数。 - **JTextArea**: 用于多行文本输入,支持滚动条。 - **JPasswordField**: 类似于JTextField,但用于隐藏输入字符,常用于密码输入。 - **JCheckBox**和**JRadioButton**: 用于提供多选或...

    JAVA_Swing

    3. JTextField:用于输入单行文本,可以限制输入字符数。 4. JTextArea:用于输入多行文本,可配置行数和列数。 5. JLabel:用于显示文本或图像。 6. JComboBox:下拉选择框,用户可以选择其中一个预设选项。 7. ...

    Java-Swing-exercises.rar_java 控件

    它可以是只读或可编辑的,可以限制用户输入的最大字符数。 6. **JTextArea**: 与JTextField相比,JTextArea允许用户输入多行文本。它可以用来创建文本编辑器或者用于显示大量文本。 7. **JComboBox**: JComboBox是...

    java聊天系统,版本多,socket,swing

    例如,JFrame用于创建主窗口,JLabel用于显示信息,JTextArea用于输入和展示聊天内容,JButton用于触发发送事件,而JList则可用于展示在线用户或群聊成员。 为了实现单聊和群聊功能,开发者需要设计不同的消息结构...

    Java 2 参考大全

    10.1 Swing组件:JFrame、JButton、JLabel、JTextArea等组件的使用。 10.2 布局管理器:FlowLayout、BorderLayout、GridLayout、BoxLayout和GridBagLayout。 10.3事件处理:监听器接口(ActionListener、...

    《Java程序设计》练习题

    - `JTextArea`是用于接收多行文本输入的组件。 - `JTextField`用于单行文本输入。 44. **异常处理** - 异常处理器的排列顺序决定了异常被处理的顺序,先列出的`catch`块将先被尝试执行。 45. **线程调度** - `...

    JAVA-SwingLoggin

    开发者通常会设置其可见字符限制来隐藏密码,如`JPasswordField`。 4. **JPasswordField**:专门用于输入密码,显示为星号或圆点,确保密码的安全性。 5. **JButton**:用户点击进行登录操作的按钮,如“登录”、...

    Java开发技术大全 电子版

    2.7.5求水仙花数92 2.7.6输出图形93 2.7.7输出九九口诀表94 2.8本章小结95 第2篇Java面向对象编程 第3章对象和类98 3.1面向对象的基本概念98 3.1.1对象98 3.1.2类99 3.1.3消息101 3.1.4面向对象的4个基本...

    javaSE代码实例

    10.1.2 访问限制修饰符与构造器 176 10.1.3 构造器与返回类型 179 10.2 创建对象 180 10.3 重载构造器 181 10.4 级联调用的构造器 182 10.4.1 构造器的调用流程及默认构造器 182 10.4.2 自定义构造器...

    java词汇解释

    通常用于自定义异常处理或在方法中显式抛出异常。 #### Throws 表示强制异常处理,用于声明方法可能会抛出的异常。 #### Throwable 可抛出的,表示所有异常类的祖先类。所有Java异常都直接或间接继承自`Throwable`...

Global site tag (gtag.js) - Google Analytics