上代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| import javax.swing.*; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent;
public class myTextField extends JTextField { private String text;
public myTextField(String text, int columns) { super(text, columns); this.text = text; this.addFocusListener(new FocusAdapter() { @Override public void focusGained(FocusEvent e) { super.focusGained(e); if(myTextField.this.getText().equals(myTextField.this.text)) myTextField.this.setText(""); }
@Override public void focusLost(FocusEvent e) { super.focusLost(e); if(myTextField.this.getText().isEmpty()) myTextField.this.setText(myTextField.this.text); } }); }
}
|
说明
用过才知道swing真的是难用,一个文本框连提示文字都不给;
所以我直接重写了JTextField类,直接给类注册了两个窗口监听器,检测到文本框获取焦点之后便自己清除里面的示例文字,如果用户没有输入就在失去焦点时恢复示例文字。
杂记
swing是真滴难用😩