Java中GUI编程之JTextField文本框提示文字设置效果

最近在学GUI编程,遇到了文本框的提示文字问题,想了一下,思路还是很简单的,话不多说,咱们直接开整!

实现效果:当该文本框失去焦点且无内容时,显示该提示文字。如果用户点击了该文本框(该文本框获取到了焦点)自动清除提示文字。以此达到提示效果。

首先先创建好一个JTextField的对象

JTextField text = new JTextField("提示文字",10);

然后我们就开始做该文本框的监听事件,这里主要是针对焦点(光标)来进行监听。

        text.addFocusListener(new FocusListener() {
      
            public void focusGained(FocusEvent e) {
        //得到焦点时,当前文本框的提示文字和创建该对象时的提示文字一样,说明用户正要键入内容
                if (text.getText().equals("提示文字")){
                    text.setText("");     //将提示文字清空
                    text.setForeground(Color.black);  //设置用户输入的字体颜色为黑色
                }

            public void focusLost(FocusEvent e) {
                 //失去焦点时,用户尚未在文本框内输入任何内容,所以依旧显示提示文字
                if (text.getText().equals("")){
                    text.setForeground(Color.gray); //将提示文字设置为灰色
                    text.setText("提示文字");     //显示提示文字
                }
            }

            }

看完思路以后可以结合上方的GIF动图来进行脑补,记得看下方注意事项!

注意:当我们创建了一个文本框之后,打开该文本框所在的界面,光标则会自动定位到文本框处(也就是说你打开该界面的一瞬间就让该文本框获取到了焦点),这样一来,我们为该文本框设置的提示文字就没有用了(因为我们设置了当文本框获取到焦点时清空文本框的操作)。解决此问题十分简单,我们可以主动的将焦点定位到文本框前的JLable标签上,设置方法 【标签名.requestFocus();】 这样就完美解决了这一问题。赶紧去试试吧!

  • 34
    点赞
  • 135
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月亮给我抄代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值