在一个JLabel放置在另一个JLbel之上的情况下,mouseClicked事件



我在JFrame上的某个坐标处有一个JLabel(比如label1),然后我有另一个JLLabel(比如label2),它正好放在label1的顶部(即它与label1的原点和大小完全相同)。

我已经注册了这两个标签来接收mouseClicked事件。

label1 = new JLabel();
label1.setHorizontalAlignment(SwingConstants.CENTER);
label1.setName("label1");
label1.addMouseListener(this);
contentPane.add(label1);
label1.setBounds(0, 0, 40, 40);
label2 = new JLabel();
label2.setHorizontalAlignment(SwingConstants.CENTER);
label2.setName("label2");
label2.addMouseListener(this);
contentPane.add(label2);
label2.setBounds(0, 0, 40, 40);

但当我点击标签时,只有label1得到通知(它是在label2之前添加的)。

我正在寻找一个解决方案,以便通知我的两个标签对象。

如有任何帮助,我们将不胜感激。

但当我点击标签时,只有label1得到通知(它是在label2之前添加的)。

按与将组件添加到面板的顺序相反的顺序摆动组件。所以标签2在标签1之前绘制。这解释了标签1获取事件的原因。

我正在寻找一个解决方案,以便通知我的两个标签对象。

将鼠标列表添加到面板中。然后,您需要循环浏览面板上的所有组件,以查看该组件是否包含鼠标点。当你找到匹配项时,你会进行处理。

可能有更好的解决方案。你为什么需要这个?为什么使用空布局。

相关内容

  • 没有找到相关文章

最新更新