JFormattedTextField组件的文本选择问题

     在最近的Java编程中遇到一个问题,就是如何实现:文本组件在获得焦点后,自动选择其文本内容?

    这本来是一个比较容易的问题,例如,用下面的方法就应该可以实现:

    myTextField.addFocusListener(new FocusAdapter() {
     public void focusGained(FocusEvent evt) {
      JFormattedTextField source=(JFormattedTextField)evt.getSource();
      source.selectAll();
     }
    });

    但是,问题在于我的“myTextFiled”是一个带有格式化器的JFormattedTextField:myTextFiled=new JFormattedTextField(myFormatter)。如果是一不带格式化器的formattedtextfiled,那么,在其中输入文本,并且利用上面的代码,就可以实现组件得到焦点后,自动选择其中的所有文本。而当有格式化器时,不管是默认的还是自定义的,再使用上面的方法,就不可用了。而要使用下面的代码,请注意区分二者的不同:

    myTextField.addFocusListener(new FocusAdapter() {
     public void focusGained(FocusEvent evt) {
      JFormattedTextField source=(JFormattedTextField)evt.getSource();
      source.setText(source.getText());
      source.selectAll();
     }
    });

    虽然我研究了一下,但还是没有发现为什么会这样?只有希望高手指点或是等有充分的时间再研究一下Java的source code了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值