簡體   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