提供一个方案供参考:
先用一个字符穿str接受 TextField 里的字符穿
然后每次输入一个字符的时候进行依次判断,
如果不合法,就处理一下str串
把最后那个不合法的字符去掉
然后在把TextField的内容设置为str当然,在这里得考虑到有写字符是没有显示的
呵呵
先用一个字符穿str接受 TextField 里的字符穿
然后每次输入一个字符的时候进行依次判断,
如果不合法,就处理一下str串
把最后那个不合法的字符去掉
然后在把TextField的内容设置为str当然,在这里得考虑到有写字符是没有显示的
呵呵
把这个弄到到你要删除的那个地方。jTFpage= new JTextField(10);
jTFpage.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
int code=e.getKeyCode();
if (!(code>=KeyEvent.VK_0&&code<=KeyEvent.VK_9||code==KeyEvent.VK_BACK_SPACE||code==KeyEvent.VK_ENTER)){
Toolkit.getDefaultToolkit().beep();
e.setKeyChar('\0');
}
}
);
[email protected]
老兄确定你这样有用吗?我试过了没有效果的。
to xch28(终于知道怎么改名了!)
我看了,那个跟我有点差别了,我想用在这里的。to xuzhike()
能否提供一点点的代码了。[email protected]谢谢了!
它可以实现几乎无限的定义输入格式。主要的使用方法是为JFormattedTextField指定模板,主要有三中模板:显示模板、输入模板、罩框模板。输入模板是在输入的时候限定输入的字符方式;显示模板是把输入模板输入的字符串以规定的格式显示出来;罩框模板是在默认的情况下显示的内容和指定输入的方式。一般情况下,只需要使用一个输入模板即可,其它的模板会让显示模板、罩框模板成为输入模板的复制品。
比如限制数字:
NumberFormatter e=new NumberFormatter(NumberFormat.getInstance());
JFormattedTextField f=new JFormattedTextField(e);即可
import javax.swing.*;
import javax.swing.text.*;
import java.util.*;
import java.text.*;public class FormattedSample {
public static void main (String args[]) throws ParseException {
JFrame f = new JFrame("JFormattedTextField Sample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container content = f.getContentPane();
content.setLayout(new BoxLayout(content, BoxLayout.PAGE_AXIS));
MaskFormatter mf1 =
new MaskFormatter("###-##-####");
mf1.setPlaceholderCharacter('_');
JFormattedTextField ftf2 = new
JFormattedTextField(mf1);
content.add(ftf2);
f.setSize(300, 50);
f.show();
}
}
你这个不能用呀,效果一样,请指教
JTextField text = new JTextField();
text.addKeyListener(new TextFieldKeyListener()); class TextFieldKeyListener implements KeyListener{
public void keyPressed(KeyEvent e){ }
public void keyReleased(KeyEvent e){ } public void keyTyped(KeyEvent e){
Object o = e.getSource();
if (o instanceof JTextField){
char keyCh = e.getKeyChar();
if ((keyCh < '0') || (keyCh > '9')){
if (keyCh != '') //回车字符
e.setKeyChar('\0');
}
}
}
}
KeyEvent.VK_ENTER
java里已经实现了KeyListener接口的空方法的类KeyAdapter,应该不用自己去实现了吧。
谢谢了!