在代码的不同部分为 JComponent 添加少量监听器是一个好习惯吗?我应该创建一个更大的监听器吗?
例如,我有 JTextField,我注意到两个 KeyListener 都被调用。
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
(通常,但特别是)与文本组件一起使用是不好的做法。
- 在同一个组件上使用多个监听器是否是一种好的做法,通常是的。
- 将一次性监听器与组件一起使用是否是一种好的做法,是的。
- 拥有一位忠实的倾听者是不是一种好的做法,恕我直言,不是。原因是,您想要创建小型工作单元来执行单一的、孤立的工作。当然,您也许能够抽象一个允许您重用的监听器,但是拥有一个单一的整体监听器只是一场维护噩梦
大多数监听器接口(interface)往往都有“适配器”类,它们只是监听器接口(interface)的具体实现,没有任何功能,因此您可以选择您实际想要使用的方法
关于java - JTextField 上的两个 KeyListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34671548/