gpt4 book ai didi

java - Label 的 labelFor 字段未按预期运行

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:15 25 4
gpt4 key购买 nike

Label 对象的 labelFor 字段的具体用途是什么?

昨天是我第一次听说 JavaFX 的事情,如果这听起来很愚蠢,我深表歉意。 Label 这个词在 HTML 节点中对我来说似乎很熟悉。出于这个原因,我认为 labelFor 字段类似于 label 节点的 for 属性。不幸的是,它并没有像我预期的那样发挥作用,至少我做不到。

这里,我举个例子说清楚:

Label name = new Label("Your name:");
TextField nameField = new TextField();

name.setLabelFor(nameField);

抱歉,它不是真正的 MWE,但这正是我所期待的:每当用户点击标签 name 时,文本字段 nameField 将收到重点。

据我所知,这正是 HTML 中的标签/输入对所发生的情况。另一方面,上面在 JavaFX 中给出的代码没有任何反应。

我可以通过在其他三行之后添加以下行来对其进行修补以实现这一点:

name.setOnMouseClicked(event -> name.getLabelFor().requestFocus());

但是,为什么我首先要指定 labelFor

最佳答案

如 javadoc 中所述:

A Label can act as a label for a different Control or Node. This is used for Mnemonics and Accelerator parsing. This allows setting of the target Node.

因此,如果您为标签设置助记符:

    Label label = new Label("_Text");
label.setMnemonicParsing(true);
label.setLabelFor(tf);

然后使用此助记符 (Alt-T) 会将焦点放在标记的 Node 上。

labelFor 也将帮助残疾用户,他们将获得有关从所引用标签获取的控件的描述。

关于java - Label 的 labelFor 字段未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30734524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com