java中JTextField中如何在初始化的时候有灰色底字提示怎么弄啊?

我想在一个单行文本框未输入内容之前看到有文字提示,比如有一个输入账号框,框内提示:账号

就想QQ登陆界面账户密码框那样图片

5个回答

value="提示" onFocus="if(value==defaultValue){value='';this.style.color='#000'}" onBlur="if(!value){value=defaultValue;this.style.color='#999'}" style="color:#9999"

qq_37823508
qq_37823508 这。。。。是java?大神,我要的是java的。。
2 年多之前 回复

楼上的是前台JS写法。

qq_37823508
qq_37823508 你会不会啊?会的话麻烦教一下我啊
2 年多之前 回复

試試這個 JTextField jtf2 = new JTextField("提示",10);
jtf2.setFont(new Font("标楷体",Font.TRUETYPE_FONT|Font.ITALIC,12));

qq_37823508
qq_37823508 不行,有了提示字,但是点击文本框,提示字不消失
2 年多之前 回复

把這段代碼加上就可以了,你試試 jtf2.addFocusListener(new FocusListener (){
@Override
public void focusGained(FocusEvent e) {
if("提示".equalsIgnoreCase(jtf2.getText())){
jtf2.setText("");
}

        }

        @Override
        public void focusLost(FocusEvent e) {
            if("".equals(jtf2.getText()) ){
                jtf2.setText("提示");

        }
        }

    });

public class MyTextField extends JTextField implements FocusListener{
private int state = 0; //1->修改 0->提示
private String showText;
public MyTextField(String text,int column){
super(text,column);
showText = text;
setForeground(Color.GRAY);
addFocusListener(this);
}

public String getText(){
    if(this.state==1){
        return super.getText();
    }
    return "";
}

 @Override
public void focusGained(FocusEvent e) {
    if(state==0){
        state = 1;
        this.setText("");
        setForeground(Color.BLACK);
    }
}
@Override
public void focusLost(FocusEvent e) {
    String temp = getText();
    System.out.println(temp);
    if(temp.equals("")){
        setForeground(Color.GRAY);
        this.setText(showText);
        state = 0;
    }else{
        this.setText(temp);
    }
}

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!

相似问题