【发布时间】:2018-08-02 03:11:36
【问题描述】:
当用户点击 JTextField 后,如何使 JTextField 中的文本自行删除?如果 JTextField 不包含任何字符,则当用户单击 JTextField 之外时,文本必须重新出现。另外,我应该将此代码放在我的 JFrame 代码中的什么位置?
【问题讨论】:
-
添加您的方法
标签: java jframe jtextfield
当用户点击 JTextField 后,如何使 JTextField 中的文本自行删除?如果 JTextField 不包含任何字符,则当用户单击 JTextField 之外时,文本必须重新出现。另外,我应该将此代码放在我的 JFrame 代码中的什么位置?
【问题讨论】:
标签: java jframe jtextfield
工作代码演示:您可以使用MouseAdapter并覆盖MouseListener
当用户点击 JtextField 时,您想清除它。您需要添加 addMouseListener 并覆盖 mouseClicked。
import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class ClearJtextField {
public ClearJtextField() {
JFrame frame = new JFrame();
frame.setLayout(new FlowLayout(FlowLayout.CENTER, 120, 120));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextField tf = new JTextField("Type something and click");
// adding MouseAdapter and overriding mouseClicked
tf.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
tf.setText("");
}
});
frame.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (tf.getText().length() == 0)
tf.setText("Type something and click");
}
});
frame.add(tf);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
new ClearJtextField();
}
}
如果用户在 JTextField 外部单击时 JTextField 为空,则上面的代码将在单击时清除 JTextField,并再次将文本设置回“键入内容并单击”。
【讨论】: