Java: Как мне сделать «onclick» для TextField? - PullRequest
1 голос
/ 01 декабря 2010

Я хочу, чтобы мое текстовое поле очищало текст, когда кто-то щелкает по нему.Как я могу это сделать?

Ответы [ 3 ]

8 голосов
/ 01 декабря 2010

на 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().

Кроме того, вы можете заменить MouseListener на java.awt.event.MouseAdapter, если он инкапсулирует все методы MouseListener, MouseWheelListener и MouseMotionListener.

Из JavaDoc (из MouseAdapter):

Абстрактный класс адаптера для получения событий мыши.Методы в этом классе пусты.Этот класс существует как удобство для создания объектов слушателей.

События мыши позволяют отслеживать, когда мышь нажимают, отпускают, щелкают, перемещают, перетаскивают, когда она входит в компонент, когда он выходит и когда колесо мыши находится впереехал.

3 голосов
/ 01 декабря 2010

Возможно, вам нужно addMouseListener().

upd Это будет выглядеть как

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

upd2 fix keyListener to MouseListener

0 голосов
/ 01 декабря 2010

Попробуйте это:

  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);
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...