一般来说,你会如何JComponent
从它的编辑那里得到信息?
例子:
让我们有可编辑的JComboBox
。因此,该组合有一个编辑器(JTextField
默认情况下)。
JComboBox b = new JComboBox();
b.setEditable(true);
现在将“全局”键盘监听器添加到 Swing 应用程序。
Toolkit.getDefaultToolkit().addAWTEventListener(
new AWTEventListener() {
public void eventDispatched(AWTEvent e) {
JComponent c = (JComponent) e.getSource();
System.out.println(c); // <- printing the event source
}
},
AWTEvent.KEY_EVENT_MASK);
向组合框输入文本的输出b
显示,关键事件的来源是b
的编辑器,而不是组合框b
本身:
javax.swing.plaf.metal.MetalComboBoxEditor$1[,0,0, ...
javax.swing.plaf.metal.MetalComboBoxEditor$1[,0,0, ...
javax.swing.plaf.metal.MetalComboBoxEditor$1[,0,0, ...
...
有没有办法b
从它的编辑器或关键事件中获取参考?如果没有,如何获得“当前编辑组合框”的参考?
PS:请不要问我“你为什么需要它?”之类的问题。谢谢。