当有人点击它时,我想让我的文本字段清除文本。我怎么能这样做?
答案 0 :(得分:8)
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
):
一个抽象适配器类 接收鼠标事件。方法中 这个班是空的。这个班 存在是为了创造的便利 听众对象。
鼠标事件可让您跟踪时间 鼠标按下,释放,单击, 移动,拖动,进入时 组件,当它退出时和a 鼠标滚轮被移动了。
答案 1 :(得分:3)
您可能需要addMouseListener()
。
<强> UPD 强> 它会像smt一样
TextField a = ...;
a.addMouseListener(new MouseAdapter(){
public void mouseReleased(MouseEvent e) {
//some stuff
}
});
UPD2 将keyListener修复为MouseListener
答案 2 :(得分:0)
试试这个:
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);
}