在keyPressed(KeyEvent e)事件里加入一句代码就ok了
JTextField.setFocusable(false);

解决方案 »

  1.   

    sorry,要限定backspace,如下:
    if(e.getKeyCode()==KeyEvent.VK_BACK_SPACE)
      JTextField.setFocusable(false);
      

  2.   

    JTextField.setFocusable(false)----->JDK中根本没有这个方法,编译不通过
      

  3.   

    if(e.getKeyCode()==KeyEvent.VK_BACK_SPACE)
      JTextField.setFocusable(false);
    只能在事件里面判断键盘是输入的哪个键。。然后做处理!!
      

  4.   

    这个方法是有的,估计你没有实例化,如下:
    JTextField jtf=new JTextField(20);
    jtf.setFocusable(false);
      

  5.   

    这样写应该明白了吧
    public class test extends JFrame {
    …………
    JTextField jtf=new JTextField(20);
    jtf.setFocusable(false);
    this.getContentPane().add(jtf);
    jtf.addKeyListener(new KeyAdapter() {
      public void keyPressed(KeyEvent e) {
        keyDown(e);
      }
    });
    …………
    }public void keyDown(KeyEvent e) {
      if(e.getKeyCode()==KeyEvent.VK_BACK_SPACE)
        jtf.setFocusable(false);
    }
    }
      

  6.   

    我们的开发平台是jdk1.3,的确没有这个函数setFocusable(false);
      

  7.   

    那setEditable(false);有不?
    setEnabled(false);有不?
      

  8.   

    用setEnabled(false),不仅屏蔽了backspace键,其他键也无效了,但是我只想屏蔽backspace,不想改变当前控件的状态(例如editable)。
      

  9.   

    this.getContentPane().addKeyListener(new KeyAdapter() {
      public void keyReleased(KeyEvent e) {
        //这里恢复JTextField的状态不就行了
      }
    });
      

  10.   

    的确达到了效果,但是作为工程程序,它是JTextField闪烁,最为用户界面不合适