[英]Java: How do I do a “onclick” for TextField?
I want to make my text field clear the text when someone clicks it. 我想让我的文本字段在有人单击时清除文本。 How can I do this?
我怎样才能做到这一点?
on java.awt.TextField
you can add a MouseListener
like so 在
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) {
}
});
The reason being that java.awt.TextField
is a subclass of java.awt.TextComponent
(which, in turn, is a subclass of java.awt.Component
). 原因是,
java.awt.TextField
是的一个子类java.awt.TextComponent
(这,反过来,是的一个子类java.awt.Component
)。 The Component
class has a addMouseListener()
method. Component
类具有addMouseListener()
方法。
Alternatively, you can replace MouseListener
with java.awt.event.MouseAdapter
has it encapsulates all of MouseListener
, MouseWheelListener
and MouseMotionListener
methods. 或者,您可以将
java.awt.event.MouseAdapter
替换为MouseListener
,因为它封装了所有MouseListener
, MouseWheelListener
和MouseMotionListener
方法。
From JavaDoc (of MouseAdapter
): 从(
MouseAdapter
)JavaDoc:
An abstract adapter class for receiving mouse events.
用于接收鼠标事件的抽象适配器类。 The methods in this class are empty.
此类中的方法为空。 This class exists as convenience for creating listener objects.
此类的存在是为了方便创建侦听器对象。
Mouse events let you track when a mouse is pressed, released, clicked, moved, dragged, when it enters a component, when it exits and when a mouse wheel is moved.
鼠标事件可让您跟踪何时按下,释放,单击,移动,拖动鼠标,何时进入组件,何时退出以及何时移动鼠标滚轮。
Probably, you need addMouseListener()
. 可能需要
addMouseListener()
。
upd It would be smt like upd这会像
TextField a = ...;
a.addMouseListener(new MouseAdapter(){
public void mouseReleased(MouseEvent e) {
//some stuff
}
});
upd2 fix keyListener to MouseListener upd2将keyListener修复为MouseListener
Try this: 尝试这个:
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.