如何获取setLabelFor连接到标签的组件的标签的StringProperty(JavaFX)?

时间:2016-09-26 11:30:10

标签: java javafx

我有一个实现

的控件
@Override
public Control setLabel(Label label) {
    label.setLabelFor(this);
    return this;
}


@Override
public Label getLabel() {
    return (Label) this.queryAccessibleAttribute(AccessibleAttribute.LABELED_BY);
}

标签不是Control的内部内容,而是附近的引用控件,而不是内部。

调用setLabel之前,我需要在某些属性上绑定未来标签上的文本。像这样的东西

someStringProperty.bind(control.labelTextProperty());

怎么做?

我会尝试澄清这个问题。

对于Label,有属性labelForProperty(),因此可以在之前绑定setLabelFor方法。但对于像TextField这样的Control,我找不到像textPropertyForConnectedLabel这样的属性,只有 AFTER (Label)才能绑定this.queryAccessibleAttribute(AccessibleAttribute.LABELED_BY)不为空。

1 个答案:

答案 0 :(得分:0)

我已经通过控制中的帮助中介属性解决了这个问题。

private StringProperty textLabelProperty = new SimpleStringProperty("");    /**
 *
 */
public Control setLabel(Label label) {
    if (label != null) {
        label.setLabelFor(this);
        textLabelProperty.bind(label.textProperty());
    }
    return this;
}    

public StringProperty labelTextProperty() {
    return textLabelProperty;
}