假设我有三个Java FX阶段:A,B和C.每个阶段都有自己的打开窗口,我的目标是以下行为:
如果A成为焦点,B应该出现在B -> A-B-C
如果B正在关注焦点,Be应该出现在后面的{C}和A前面-> A-C-B
如果C正在关注焦点,那么-> A-B-C
了解toFront()
功能并尝试相应地手动强制执行订单,只要其中一个阶段重新获得焦点,只需向正确顺序中的每个阶段调用toFront()
,但这会导致意外情况闪烁,因为显然没有办法确定哪些窗口已经在正确的位置。
不幸的是我无法使用模态窗口系统,因为所有窗口都需要保持并行运行。
有没有办法实现这个目标?
提前非常感谢!
答案 0 :(得分:0)
刚遇到同样的问题。 我能找到的唯一“黑客”是存储阶段聚焦的顺序,然后以相反的顺序通过所有阶段并调用.toFront()。
每当一个舞台获得焦点时,我会将其放入开放阶段列表的顶部。 然后我阻止EventHandler全局,因为每次一个阶段收到.toFont()调用它也会得到焦点。
适用于Mac。 不起作用并在Windows下显示奇怪的行为
{{1}}