我在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获取事件的原因。
我正在寻找一个解决方案,以便通知我的两个标签对象。
将鼠标列表添加到面板中。然后,您需要循环浏览面板上的所有组件,以查看该组件是否包含鼠标点。当你找到匹配项时,你会进行处理。
可能有更好的解决方案。你为什么需要这个?为什么使用空布局。