我正在实现一个Java Swing GUI,它有几个JLabel,在JFrame上显示几次。出于这个原因,我实例化标签并将它们存储在Vector中。对于每个标签,我在我的JFrame扩展类的构造函数中添加了一个这样的监听器:
b1.addMouseListener(new LabelMouseListener(...));
每次我想显示标签时,我都会从矢量中选择它们并将它们作为组件添加到框架上。这很好用。而且,我在构造函数中添加的监听器正在监听。但是,Mac和PC上的行为有所不同。在Mac上它完全正常,但在PC(Win XP)上我需要在听众做出反应之前点击标签两次。 LabelMouseListener实现了MouseListener,我重写了mouseClicked方法。也许它也取决于JavaRE,因为在Mac上我使用1.6,在Win上,我使用1.7。这是一个已知问题,还是您对错误原因有任何建议?