Я хочу, чтобы мое текстовое поле очищало текст, когда кто-то щелкает его. Как я могу это сделать?
Java: как сделать щелчок для TextField?
Ответы (3)
на 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
):
Абстрактный класс адаптера для получения событий мыши. Методы в этом классе пусты. Этот класс существует для удобства создания объектов-слушателей.
События мыши позволяют отслеживать, когда мышь нажимается, отпускается, щелкает, перемещается, перетаскивается, когда она входит в компонент, когда она выходит и когда перемещается колесико мыши.
mousePressed
, используйте вместо него MouseAdapter
.
- person Buhake Sindi; 01.12.2010
Возможно, вам нужно addMouseListener()
.
upd Это было бы похоже на smt
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);
}
focusGained(FocusEvent)
запускается, когда Component
получает фокус, то есть когда вы нажимаете Alt + Tab на свой JFrame?
- person Przemek Kryger; 01.12.2010