繁体   English   中英

如果在侦听器类上有多个if

[英]Multiple if then else on a listener class

是否有更简洁/更简单的方法使用侦听器的getSource()执行if-then-else语句?

我有一个FocusListener,我需要突出显示触发FocusListener的JTextField中的文本

    private class calculator implements FocusListener{ 


        public void focusGained(FocusEvent evt) {


            if(evt.getSource()==txtInitialRead ){   


                txtInitialRead.selectAll(); 

            }

我的问题是我有很多JTextFields,需要在FocusListener中为每一个创建一个if语句。 有没有简单的方法呢? 切换分支不适用于此对象类型。

当然这不是一个大问题,我只是认为必须有一个更简洁的方法来做到这一点。

谢谢!

只需突出显示当前组件:

@Override
public void focusGained(FocusEvent evt) {
    JTextComponent tComponent = (JTextComponent) evt.getSource();
    tComponent.selectAll();
}

具有此侦听器的任何JTextField(或其他文本组件)将在/获得焦点时选择所有文本。

只是不要将此侦听器添加到非文本组件,否则您可能会抛出类强制转换异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM