繁体   English   中英

Java:如何为TextField做“ onclick”操作?

[英]Java: How do I do a “onclick” for TextField?

我想让我的文本字段在有人单击时清除文本。 我怎样才能做到这一点?

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.TextField是的一个子类java.awt.TextComponent (这,反过来,是的一个子类java.awt.Component )。 Component类具有addMouseListener()方法。

或者,您可以将java.awt.event.MouseAdapter替换为MouseListener ,因为它封装了所有MouseListenerMouseWheelListenerMouseMotionListener方法。

从( MouseAdapter )JavaDoc:

用于接收鼠标事件的抽象适配器类。 此类中的方法为空。 此类的存在是为了方便创建侦听器对象。

鼠标事件可让您跟踪何时按下,释放,单击,移动,拖动鼠标,何时进入组件,何时退出以及何时移动鼠标滚轮。

可能需要addMouseListener()

upd这会像

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

upd2将keyListener修复为MouseListener

尝试这个:

  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);
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM