【问题标题】:Multiple if then else on a listener class侦听器类上的多个 if then else
【发布时间】:2018-01-26 05:06:52
【问题描述】:

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

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

    private class calculator implements FocusListener{ 


        public void focusGained(FocusEvent evt) {


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


                txtInitialRead.selectAll(); 

            }

我的问题是我有很多 JTextField 并且需要在 FocusListener 中为每个创建一个 if 语句。有什么简单的方法可以做到这一点吗?切换分支不适用于此对象类型。

当然这不是什么大不了的事,我只是认为必须有一种更简洁的方法来做到这一点。

谢谢!

【问题讨论】:

    标签: java swing focuslistener


    【解决方案1】:

    只需突出显示当前组件:

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

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

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

    【讨论】:

    • 很有魅力,谢谢!看起来我又回到了书本上。
    • 如果要求不高的话。您是否知道任何在线文献可以解释您创建对象的方式?我知道的创建对象的唯一实例是传统的 Object objname = new object();
    • 他没有创建新对象,只是casted事件源作为他知道的对象类型
    猜你喜欢
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多