JTextField上的两个KeyListener [英] Two KeyListeners on JTextField

查看:79
本文介绍了JTextField上的两个KeyListener的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在代码的不同部分添加几个JComponent侦听器是一种好习惯吗?我应该建立一个更大的听众吗?

Is it a good practice to add few listeners for JComponent in different part of code? Should I create one bigger listener?

例如,我有JTextField,我注意到两个KeyListener都被调用了.

For example I have JTextField, I noticed that both KeyListeners are called.

 JTextField textField = new JTextField();
  textField.addKeyListener(new KeyListener()
  {
     @Override
     public void keyTyped(KeyEvent e)
     {

     }

     @Override
     public void keyPressed(KeyEvent e)
     {

     }

     @Override
     public void keyReleased(KeyEvent e)
     {
        something();
     }
  });

  textField.addKeyListener(new KeyListener()
  {
     @Override
     public void keyTyped(KeyEvent e)
     {

     }

     @Override
     public void keyPressed(KeyEvent e)
     {

     }

     @Override
     public void keyReleased(KeyEvent e)
     {
        somethingElse();
     }
  });

推荐答案

好吧,对文本组件使用KeyListener(通常,但尤其是)是不好的做法.

Well, it's bad practice to use KeyListener (generally, but especially) with text components.

  • 在同一组件上使用多个侦听器是一种好习惯,通常是.
  • 将一次性使用的侦听器与组件一起使用是否是一种好习惯,是的.
  • 有一个大听众,恕我直言,这是一个好习惯吗?原因是,您想创建一个小的工作单元来完成一个单独的工作.当然,您也许可以抽象出一个允许您重复使用的侦听器,但是只有一个整体式侦听器只是维护方面的噩梦

大多数侦听器接口往往具有适配器"类,它们只是侦听器接口的具体实现,没有任何功能,因此您可以选择实际要使用的方法

Most listener interfaces tend to have "adapter" class, which are just concrete implementations of the listener interface without any functionality, so you can pick and choose the methods you actually want to use

这篇关于JTextField上的两个KeyListener的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆