在Swing中,如何在没有特定组件的情况下应用KeyListener

通常我们将Key Listener应用于特定组件,如文本字段,密码字段等。但我想概括这个监听器行为适用于所有人。

Swing旨在与Key Bindings一起使用,它可以做你想要的。 我首先检查Key Bindings 。 不要忘记阅读Swing教程以获取完整信息。

如果这没有帮助,请参阅全球事件监听器以获取一些建议。

所有swing组件都是JComponent。 您可以将所有这些用作JComponent:

@Override public void keyTyped(KeyEvent e) { JComponent component = (JComponent) e.getSource(); // TODO Implements your action } 

您可以看到这是一种有限的方法。

您也可以根据您的来源类别工作:

 @Override public void keyTyped(KeyEvent e) { Object source = (JComponent) e.getSource(); if (source instanceof JTextField) { // TODO Implment action for JTextField } else if (source instanceof JTextArea) { // TODO Implment action for JTextArea } } 

根据您的需要,您可以使用Reflections API来执行此操作…