Java:如何为TextField执行“onclick”?

时间:2010-12-01 11:18:52

标签: java awt

当有人点击它时,我想让我的文本字段清除文本。我怎么能这样做?

3 个答案:

答案 0 :(得分:8)

java.awt.TextField

你可以像这样添加MouseListener

TextField field = new TextField();
field.addMouseListener(new MouseListener() {

    public void mouseClicked(MouseEvent e) {

    }

    public void mousePressed(MouseEvent e) {

    }

    public void mouseReleased(MouseEvent e) {

    }

    public void mouseEntered(MouseEvent e) {

    }

    public void mouseExited(MouseEvent e) {

    }

});

原因是java.awt.TextFieldjava.awt.TextComponent的子类(反过来,它是java.awt.Component的子类)。 Component类有addMouseListener()方法。

或者,您可以将MouseListener替换为java.awt.event.MouseAdapter,并将MouseListenerMouseWheelListenerMouseMotionListener方法封装起来。

来自JavaDoc(MouseAdapter):

  

一个抽象适配器类   接收鼠标事件。方法中   这个班是空的。这个班   存在是为了创造的便利   听众对象。

     

鼠标事件可让您跟踪时间   鼠标按下,释放,单击,   移动,拖动,进入时   组件,当它退出时和a   鼠标滚轮被移动了。

答案 1 :(得分:3)

您可能需要addMouseListener()

<强> UPD 它会像smt一样

TextField a = ...;
  a.addMouseListener(new MouseAdapter(){
   public void mouseReleased(MouseEvent e) {
    //some stuff
   }
});

UPD2 将keyListener修复为MouseListener

答案 2 :(得分:0)

试试这个:

  TextField.setText("defaultText");

    TextField.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseClicked(java.awt.event.MouseEvent evt) {
            reSet(evt);
        }
    });

  TextField.addFocusListener(new java.awt.event.FocusAdapter() {
        public void focusGained(java.awt.event.FocusEvent evt) {
            reSet(evt);
        }
  });

  void reSet(java.awt.event.KeyEvent evt) {
      String temp = jTextField1.getText();
      TextField.setText(temp.equals("defaultText")? "" : temp);
  }