我正在尝试将带有引导组件的Container A
添加到另一个Container B
(带有自己的主要组件)中。但是,我无法弄清楚如何让Container A
分别对来自Container B
的指针事件采取行动。
以下代码是我迄今为止所做的(并且失败了)。总而言之,在setBlockLead(true)
上调用Lead component A
会导致Lead component A
调用自己的动作侦听器,但不会影响Container A
的其余部分。
Container conB = new Container();
Button leadB = new Button("b");
leadB.addActionListener((evt) -> {
System.out.println("Lead B");
});
conB.setLeadComponent(leadB);
Container conA = new Container(BoxLayout.y());
Button leadA = new Button("a");
leadA.addActionListener((evt) -> {
System.out.println("Lead A");
});
conA.add(leadA);
conA.add("Another label");
conB.add(leadB).add(conA);
conA.setBlockLead(true); //This has no effect
conA.setLeadComponent(leadA); //Apparently no effect either
leadA.setBlockLead(true);
//Clicking on leadA (and only leadA) will print "Lead A", but
//Clicking on Label will not
这样做的主要原因是在单词的上方和下方显示带有图像的按钮,这与单击容器的其余部分的行为不同。
请指教。
答案 0 :(得分:0)
我们不支持嵌套引导组件,您可以使用setLeadComponent(null)
禁用内部容器的引导组件,但嵌套将不起作用,因为引导组件层次结构中有很多假设。