我有一个名为“customers”的TableView,其TableColumns与客户详细信息相关。 在同一个TableView中,我想再添加一个TableColum作为“Action”,其中User可以为特定Customer添加,查看和删除产品详细信息。
通过谷歌搜索来尝试多种方法,但直到现在还没有得到任何解决方案。
答案 0 :(得分:0)
只需添加TableColumn
个自定义cellFactory
即可。顺便说一句:您可能希望Button
使用单个列/行,在这种情况下,您只需使用HBox
或VBox
,但您当然可以替换TableColumn<Product, Void> buttonColumn = new TableColumn<>("Action");
buttonColumn.setCellFactory(col -> new TableCell<Product, Void>() {
private final VBox container;
{
Button add = new Button("Add");
Button view = new Button("View");
Button delete = new Button("Delete");
delete.setOnAction(evt -> {
// delete this row item from TableView items
getTableView().getItems().remove(getIndex());
});
view.setOnAction(evt -> {
// call some method with the row item as parameter
viewProduct(getTableRow().getItem());
});
add.setOnAction(...);
container = new VBox(5, add, view, delete);
}
@Override
public void updateItem(Void item, boolean empty) {
super.updateItem(item, empty);
setGraphic(empty ? null : container);
}
});
tableView.getColumns().add(buttonColumn);
或Create function Junk_to_date(junk in VARCHAR2) return date as
Begin
Return to_date(junk,'yyyymmdd');
Exception
When others then
Return null ;
End;
中的布局。以下代码:
Select Junk_to_date(PLE_DATE)
From...