关于JTextField

JTextField txtUsr = new JTextField(10);
JPassWordField txtPwd = new JPassword(10);
这里的10并不是设置可以输入的字节数或个数,实际它并不限制输入多少,可以无限输入;它只是设置外观看起来的长度而已。
想要限制其输入个数或者只能输入字母或数字,可以通过事件监听,或者覆盖Document类。
嗯,再说吧。。。。。
终于来电了,今天居然停了半天的电啊
对于上述问题的解决,首先考虑从JTextField自带的函数解决
首先查看它有的带有Set字样的函数。
SetSize()是设置组件本身大小,顺带看了下这个函数的效果,可是不见变化啊。

暂时是找不到好的解决办法,只能事件监听了
txtUsr.addKeyListener(new KeyListener() {
			
			@Override
			public void keyTyped(KeyEvent e) {
				// TODO Auto-generated method stub
				JTextField txt = (JTextField)e.getSource();
				if(txt.getText().length()>10)
				{
					JOptionPane.showMessageDialog(null, "密码已达最大长度!");
				}
			}
			
			@Override
			public void keyReleased(KeyEvent e) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void keyPressed(KeyEvent e) {
				// TODO Auto-generated method stub
				
			}
		});

原本我是if(txtUsr.getText().length()>10)但是报错,说是不在同一个类里面。只能通过KenEvent e这个参数来解决了,如上述所示。

有件奇怪的事,JTextField txtUsr = new JTextField("luoye",10);
在显示的时候,不能显示任何组件。 然后改变窗口大小或者最小化后在打开,就能正常显示了。于是我在JFrame构造函数末尾加上repaint(); 问题任然没得到解决,于是我改为JTextField txtUsr = new JTextField(10);就正常了。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值