[英]How to define a Column for buttons in FXML (JavaFX)
我知道由於jewelsea,可以在TableView中創建一個充滿按鈕的列。
但我想知道是否可以直接在FXML中定義它。
例如,與其他類型的一個做:
班級人員 :
private final SimpleStringProperty birthDate = new SimpleStringProperty("");
然后在FXML中:
<TableView fx:id="table" layoutY="50.0" prefHeight="350.0" prefWidth="600.0">
<columns>
<TableColumn prefWidth="79.5" text="date of birth">
<cellValueFactory>
<PropertyValueFactory property="birthDate" />
</cellValueFactory>
</TableColumn>
</columns>
</TableView>
並且可以添加以下元素 :
@FXML private TableView<Person> table;
//...
table.getItems().add("12/02/1452");
如何用Buttons實現同樣的目標?
不,你不可能用代碼初始化它
class ButtonListCell extends ListCell<MyObject> {
@Override
public void updateItem(MyObject obj, boolean empty) {
super.updateItem(obj, empty);
if (empty) {
setText(null);
setGraphic(null);
} else {
setText(obj.toString());
Button butt = new Button();
butt.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("clicked");
}
});
setGraphic(butt);
}
}
}
listview.setCellFactory(new Callback<ListView<MyObject>, ListCell>() {
@Override
public ListCell call(ListView<MyObject> param) {
return new ButtonListCell();
}
});
由於需要單元工廠,因此無法在FXML中向表列添加按鈕。
你可以像jewelsea一樣使用Java代碼來完成它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.