当前位置: 技术问答>java相关
一个简单问题,来抢100分,来者有分.
来源: 互联网 发布时间:2015-07-08
本文导语: 我的配置是:C366+128+pwin98 在使用JBuild5与JBuild6时,新建一个jTextField后在 Application1的Form1中,再设置column属性,(column是否是设置文本域允许输入最大字符的?) Run后jTextField 确可以输入很多.既column属性未起作用,请问个位大哥...
我的配置是:C366+128+pwin98 在使用JBuild5与JBuild6时,新建一个jTextField后在
Application1的Form1中,再设置column属性,(column是否是设置文本域允许输入最大字符的?)
Run后jTextField 确可以输入很多.既column属性未起作用,请问个位大哥大姐这是为啥?
Application1的Form1中,再设置column属性,(column是否是设置文本域允许输入最大字符的?)
Run后jTextField 确可以输入很多.既column属性未起作用,请问个位大哥大姐这是为啥?
|
下面我将我改写的TextField子类贴出来。
注意:TextField可用JTextField替换。
import java.awt.*;
import java.awt.event.*;
public class MyTextField extends TextField
{
private String strTest;
MyTextField(int n)
{
super(n);
initMyTextField();
}
MyTextField()
{
super();
initMyTextField();
}
MyTextField(String s)
{
super(s);
initMyTextField();
}
MyTextField(String s ,int n)
{
super(s,n);
initMyTextField();
}
public void initMyTextField()
{
strTest="";
addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
String s=getText();
//加上下面这一行,是因为如果按住一个键不放,则会产生多个keyPressed的事件
//而只产生一个keyReleased事件
if(s.length()getColumns()*2)
{
s=strTest;
setText(s);
setCaretPosition(s.length());
}
}
});
}
}
注意:TextField可用JTextField替换。
import java.awt.*;
import java.awt.event.*;
public class MyTextField extends TextField
{
private String strTest;
MyTextField(int n)
{
super(n);
initMyTextField();
}
MyTextField()
{
super();
initMyTextField();
}
MyTextField(String s)
{
super(s);
initMyTextField();
}
MyTextField(String s ,int n)
{
super(s,n);
initMyTextField();
}
public void initMyTextField()
{
strTest="";
addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
String s=getText();
//加上下面这一行,是因为如果按住一个键不放,则会产生多个keyPressed的事件
//而只产生一个keyReleased事件
if(s.length()getColumns()*2)
{
s=strTest;
setText(s);
setCaretPosition(s.length());
}
}
});
}
}
|
这个很正常,因为jTextField不是限制输入多少字符。
|
column不是最大字符,是多少行的!
|
哦,虽然不能帮你,但是帮你UP一下!希望你能得到好的解答!
UP! :)
UP! :)
|
up:
|
JDK1.4中, 多了一個JFormattedTextField好像可以解決問題
|
可以去查以下JB中的帮助文档
|
这个很正常,因为jTextField的属性column是用来显示多少字符的,但不是限制输入多少字符。
如: column=3,则可在界面上显示3个Unicode字符,至于输入多少没有限制。
如: column=3,则可在界面上显示3个Unicode字符,至于输入多少没有限制。
|
up
|
up=========
|
捕捉keyPressed事件有局限性, 如果Copy/Paste怎么辦,
應當定制JTextField的Document
詳見JDK API的幫助
應當定制JTextField的Document
詳見JDK API的幫助
|
正常,因为jTextField不是限制输入多少字
|
jTextField对输入文字字数没有限制,但这要取决你程序的意图.
|
up
|
up
|
jTextField的属性column是用来显示多少字符的,但不是限制输入多少字符,
|
jTextField不限制输入多少字啊,至于有没有方法来限制,你还是查查帮助文档吧!
呵呵
呵呵
|
up
|
up