【发布时间】:2018-09-06 02:17:01
【问题描述】:
当我在下面使用术语非活动节点时,我的意思是不能与用户交互的东西。
一个标签,数字键上方的打字标签同时接受按钮输入和键盘输入。到目前为止,按照我设计的方式,标签会捕获键盘上的按键,因此必须保持焦点。用户不应通过单击此标签以使其接受按键来保持对该标签的关注。
其余标签应处于非活动状态:“LOGIN”标题、“Enter Employee Number”消息以及日期和时间标签。
这些按钮都是交互式的:数字按钮、后退按钮、清除按钮、提交按钮和重置按钮。单击这些按钮时,它们会编辑输入标签文本并将焦点传回给它。
最后,应该有存放这些节点的非活动容器。
当显示此屏幕时,我希望用户能够在输入标签中输入数字,即使他们有意尝试从标签中移除焦点。我可以将屏幕上的每个单独节点设为node.mouseTransparent(boolean type); 或node.focusTraversable(boolean type),但似乎应该有更好的方法来做到这一点。
如果不希望用户管理焦点,那么在同时具有非活动节点和交互节点的屏幕中记录按键和管理焦点的最佳方式是什么?
我想这样做:
parent.mouseTransparent(true);
interactiveChild.mouseTransparent(false);
因为我希望父代码能够涵盖各种不活动的孩子,但交互式孩子仍然无法点击。
【问题讨论】:
-
你最好添加一些代码sn-ps来帮助我们理解你的问题,首先为什么你需要设置鼠标透明?无论如何,用户都可以使用键盘上的 Tab 按钮更改焦点,只要您单击屏幕上的按钮或键盘上的按钮,如果这对您有帮助,您都可以将焦点强制集中到键入标签文本上我可以提供一些代码来帮助您
-
请提供一个minimal reproducible example 来说明问题。