Используя JavaFX и Scene Builder, я пытаюсь получить доступ к тексту внутри метки с контроллера.Получить fx: id из метки щелкнули, чтобы получить его текст с контроллера
Я инициализируется метку следующим образом в контроллере:
@FXML
private Label label1;
Следующий код находится в файле FXML:
<Label fx:id="lable1" onMouseClicked="#handleLabel" text="Label 1" />
Я связан ярлык для этой функции в контроллере, используя сцены Строитель:
private void handleLabel(MouseEvent event) {
// get text from label n
}
Моей идеей было назвать что-то вроде label1.getText()
. Но для этого мне нужно получить идентификатор fx: id ярлыка, и поскольку я буду много ярлыков, я не могу жестко кодировать все случаи id отдельно.
Better way for Getting id of the clicked Object in JavaFX controller Я нашел это, но я не думаю, что этот ответ работает для меня, потому что инициализация метки и установка идентификатора, похоже, не справляются с @FXML. Кроме того, на него не было ответа, можно ли получить доступ к идентификатору fx: id компонента.
Любые другие способы доступа к методам объекта Label, такие как getText()
, также приветствуются.
'((Ярлык) event.getSource()). GetText()'? (Даже если вы можете получить 'fx: id', чего вы не можете, как бы вы использовали это для вызова 'getText()' ??) –
Идея заключалась в том, чтобы делать label1.getText(). Поскольку fx: id - label1, я думал, что могу использовать имя id .getText(). Но ваш путь тоже работает. Но ответ заключается в том, что вы не можете получить доступ к fx: id, но должны найти способ обойти его. Благодаря! – sandboxj
Но у вас не было бы 'label1' (это ссылка на объект): у вас будет переменная' String', содержащая текст '' label1 "', что совсем не то же самое. Что бы вы тогда сделали? –