一旦用户点击JTextField,如何让JTextField中的文本自行删除?如果JTextField不包含任何字符,则当用户单击JTextField时,必须重新显示该文本。另外,我将这些代码放在我的JFrame代码中?
答案 0 :(得分:-1)
工作代码演示:您可以使用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为空。