问题如题
另外本想用上jTextField_IP_inputMethodTextChanged这个事件 但是怎么没有反映
public void jTextField_IP_inputMethodTextChanged(InputMethodEvent event) {

解决方案 »

  1.   

    监听JTextFeild的Document文档,在有数据输入时用正则表达式来判断是否可以输入。
      

  2.   

    能不能说具体一点
    我用的是swing控键 不是页面
      

  3.   

    写一个自己的MyDocument类,继承javax.swing.text.PlainDocument,PlainDocument类继承了AbstractDocument,所以已经实现过了Document接口。
    重写insertString(int offs, String str, AttributeSet a)方法,在这里用正则表达式来检验输入字符串是否匹配你的要求,如果不匹配就return;
    匹配的话:
    super.insertString(offs, str, a);你的JTextFeild有个setDocument(Document doc)方法用来将编辑器与一个文档相关联,你可以用这个方法将你的MyDocument和JTextFeild关联,这样就能在你输入新的内容时检测输入是否合法。下面是JavaAPI文档中javax.swing.JTextFeild给出的继承PlainDocument的小例子,你可以参考下:public class UpperCaseField extends JTextField {
     
         public UpperCaseField(int cols) {
             super(cols);
         }
     
         protected Document createDefaultModel() {
             return new UpperCaseDocument();
         }
     
         static class UpperCaseDocument extends PlainDocument {
     
             public void insertString(int offs, String str, AttributeSet a) 
                 throws BadLocationException {
     
                 if (str == null) {
                     return;
                 }
                 char[] upper = str.toCharArray();
                 for (int i = 0; i < upper.length; i++) {
                     upper[i] = Character.toUpperCase(upper[i]);
                 }
                 super.insertString(offs, new String(upper), a);
             }
         }
     }
      

  4.   

    五斗米兄,我就是insertString()方法的问题,帮我看看是咋回事呀?
    http://community.csdn.net/Expert/topic/4953/4953977.xml?temp=.6917536