优化的swing文本框

本文最后更新于:3 个月前

上代码

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;

/**优化的swing 输入框
* 获取鼠标焦点之后可以清除提示文字
* @author Tars
*/
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是真滴难用😩


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!