社区
Java SE
帖子详情
桌面程序中,如何限定一个输入框只能输入10个字符,超过10个字符时,再按键或粘贴都不显示?
dreamsky
2006-03-31 09:46:15
如题
...全文
389
12
打赏
收藏
桌面程序中,如何限定一个输入框只能输入10个字符,超过10个字符时,再按键或粘贴都不显示?
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gow
2006-04-07
打赏
举报
回复
同意
voxer(voxer)和cuij7718(沸腾的音乐 http://sunfruit.blogchina.com) !!
dreamsky
2006-04-06
打赏
举报
回复
使用Document对象如何设置呢?
atext.getDocument().addDocumentListener(new DocumentListener() {
public void insertUpdate(DocumentEvent event) {
if (atext.getText().length() > alen) {
String ainfo = atext.getText();
atext.setText(ainfo.substring(0, alen));
}
}})
提示错误,不允许atext.setText
cuij7718
2006-04-06
打赏
举报
回复
voxer(voxer) 的方法是正解,用Key监听器不是很好
捏造的信仰
2006-04-06
打赏
举报
回复
寒死,什么样的方法都来了……
正解(少数变量定义省略了):
tfield.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent e) {
JTextField source = (JTextField) e.getSource();
int length = (source).getText().length();
if (length >= 10) {
// 取消键入
e.consume();
if (length > 10) {
//截取粘贴
source.setText(source.getText().substring(0, 10));
}
}
}
public void keyPressed(KeyEvent e) {
}
public void keyReleased(KeyEvent e) {
}
});
Voxer
2006-04-06
打赏
举报
回复
import java.awt.Toolkit;
import javax.swing.text.*;
import javax.swing.*;
//
public class TenLimitDocument
extends PlainDocument {
JTextField txtFld;
public TenLimitDocument(JTextField txtFld) {
this.txtFld = txtFld;
}
public void insertString(int offset, String s, AttributeSet attributeSet) throws
BadLocationException {
if(txtFld.getText().length()>=10){
return ;
}
super.insertString(offset,s,attributeSet);
}
}
用的时候
JTextFiled txtFld = new JTextField();
txtFld.setDocument(new TenLimitedDoucment(txtFld));
yushaofeng00
2006-04-04
打赏
举报
回复
自己写个算法吧~例如
import java.awt.*;
import java.awt.event.*;
public class MyApp
{
public static void main(String args[])
{
mFrame mf=new mFrame();
}
}
class mFrame extends Frame implements TextListener
{
TextField t=new TextField();
TextField t1=new TextField(6);
mFrame()
{
setLayout(new FlowLayout());
t.addTextListener(this);
t.setColumns(6);
add(t);
add(t1);
pack();
show();
}
public void textValueChanged(TextEvent e)
{
if(e.getSource()==t)
{
String s=new String(t.getText());
int length=s.length();
if(length>5)
{
s=s.substring(0,length-1);
t.setText(s);
length=5;
}
}
}
public boolean handleEvent(Event e)
{
if(e.id==Event.WINDOW_DESTROY)
{
dispose();
System.exit(0);
}
return super.handleEvent(e);
}
}
syhan
2006-04-03
打赏
举报
回复
你初始化的时候限定只能10个不就是了
JTextField txt = new JTextFiled(10);
这样不行吗?还是搂主的意思是可以输入超过10个,但是超过的部分不显示呢?
cuij7718
2006-04-03
打赏
举报
回复
使用Document对象限制
Nuage
2006-03-31
打赏
举报
回复
public JFormattedTextField locFormat(JFormattedTextField locationIn){
JFormattedTextField locationOut=locationIn;
try {
MaskFormatter locaFormat = new MaskFormatter("##########");
locationOut = new JFormattedTextField(locaFormat);
} catch (ParseException e) {
e.printStackTrace();
}
return locationOut;
}
监听里面加上这个.不过这样一来必须输入10个字符.楼主看看有没有用.
huataixiang19810225
2006-03-31
打赏
举报
回复
监听Text输入的长度,当等于10的时候,让不可用应该可以
diyucity
2006-03-31
打赏
举报
回复
完了吗?不是这样的吧?
dreamsky
2006-03-31
打赏
举报
回复
UP
[开发工具] .NET Reflector 8.0.2.313 最新版
程序
+注册机
☆ 资料说明: ☆ .NET Reflector 8.0.2.313 最新版 压缩包内包含安装
程序
和注册机; ☆ 注册方法: ☆ 1. 断网 2. 运行.NET Reflector,点击Help -> Activate 3. 运行注册机,复制注册机生成的序列号,
粘贴
到.NET Reflector
中
的激活
输入
框
4. 点击激活按钮,此
时
弹出错误提示“无法连接到...”,点击手动激活按钮,弹出手动激活界面 5. 将 .NET Reflector
中
的激活请求
字符
串复制,
粘贴
到注册机第二个文本框
中
,复制第三个文本框的激活应答
字符
串,
粘贴
到.NET Reflector手动激活界面右边文本框
中
6. 点击激活按钮,激活成功 ^_^
[开发工具] .NET Reflector 8.1.0.35 最新版
程序
+注册机
☆ 资料说明: ☆ .NET Reflector 8.1.0.35 最新版 压缩包内包含安装
程序
和注册机; ☆ 注册方法: ☆ 1. 断网 2. 运行.NET Reflector,点击Help -> Activate 3. 运行注册机,复制注册机生成的序列号,
粘贴
到.NET Reflector
中
的激活
输入
框
4. 点击激活按钮,此
时
弹出错误提示“无法连接到...”,点击手动激活按钮,弹出手动激活界面 5. 将 .NET Reflector
中
的激活请求
字符
串复制,
粘贴
到注册机第二个文本框
中
,复制第三个文本框的激活应答
字符
串,
粘贴
到.NET Reflector手动激活界面右边文本框
中
6. 点击激活按钮,激活成功 ^_^
[.NET Reflector] .NET Reflector 8.2.0.42 最新版
☆ 资料说明: ☆ .NET Reflector 8.2.0.42 最新版 压缩包内包含安装
程序
和注册机; ☆ 注册方法: ☆ 1. 断网 2. 运行.NET Reflector,点击Help -> Activate 3. 运行注册机,复制注册机生成的序列号,
粘贴
到.NET Reflector
中
的激活
输入
框
4. 点击激活按钮,此
时
弹出错误提示“无法连接到...”,点击手动激活按钮,弹出手动激活界面 5. 将 .NET Reflector
中
的激活请求
字符
串复制,
粘贴
到注册机第二个文本框
中
,复制第三个文本框的激活应答
字符
串,
粘贴
到.NET Reflector手动激活界面右边文本框
中
6. 点击激活按钮,激活成功 ^_^
[开发工具] .NET Reflector 7.6.1.824
☆ 资料说明: ☆ .NET Reflector 7.6.1.824 Inc Keygen 压缩包内包含安装
程序
和注册机; ☆ 注册方法: ☆ 1. 断网 2. 运行.NET Reflector,点击Help -> Activate 3. 运行注册机,复制注册机生成的序列号,
粘贴
到.NET Reflector
中
的激活
输入
框
4. 点击激活按钮,此
时
弹出错误提示“无法连接到...”,点击手动激活按钮,弹出手动激活界面 5. 将.NET Reflector
中
的激活请求
字符
串复制,
粘贴
到注册机第二个文本框
中
,复制第三个文本框的激活应答
字符
串,
粘贴
到.NET Reflector手动激活界面右边文本框
中
6. 点击激活按钮,激活成功 ^_^
[.NET Reflector] .NET Reflector 8.3.3.115 最新版
☆ 资料说明: ☆ .NET Reflector 8.3.3.115 最新版 压缩包内包含安装
程序
和注册机; ☆ 注册方法: ☆ 1. 断网 2. 运行.NET Reflector,点击Help -> Activate 3. 运行注册机,复制注册机生成的序列号,
粘贴
到.NET Reflector
中
的激活
输入
框
4. 点击激活按钮,此
时
弹出错误提示“无法连接到...”,点击手动激活按钮,弹出手动激活界面 5. 将 .NET Reflector
中
的激活请求
字符
串复制,
粘贴
到注册机第二个文本框
中
,复制第三个文本框的激活应答
字符
串,
粘贴
到.NET Reflector手动激活界面右边文本框
中
6. 点击激活按钮,激活成功 ^_^
Java SE
62,626
社区成员
307,258
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章