У меня есть настраиваемая пользовательская кнопка JavaFX. Как это.Как создать свойство fxml "text:" в пользовательском элементе управления JavaFX?
public class MyButton extends Control{
private static final String DEFAULT_STYLE_CLASS = "satrec-button";
private Button button;
public MyButton(){
getStyleClass().setAll(DEFAULT_STYLE_CLASS);
}
@Override
public String getUserAgentStylesheet(){
return "sample/css/button.css";
}
public void setButton(Button button){
this.button = button;
}
public void setText(String text){
this.button.setText(text);
}
}
Я хочу использовать этот элемент управления в FXML. Но оригинальная кнопка и метка может установить текст, чтобы использовать «тест:» Как это
<Button text="Search" textFill="white" prefWidth="130" GridPane.columnIndex="4" GridPane.rowIndex="1" styleClass="control" fx:id="search_btn" />
Но MyControl
не может использовать эту функцию. Я посмотрел Labeled
класс. Я знаю, text
является StringProperty
.
Но я не знаю, что это такое и как я могу использовать. Как мне это сделать?? Пожалуйста, помогите мне.
Вы должны иметь StringProperty под названием «Текст» в пользовательском элементе управления, так что вы можете использовать его в FXML , Или вы можете расширить MyButton из класса Button. – ItachiUchiha
Кроме того, если вы попытаетесь использовать это в FXML любым из очевидных способов, не будет 'button' равно null, когда загрузчик FXML пытается установить текст? Вероятно, вы должны убедиться, что в конструкторе инициализируется 'button'. –