this问题的后续行动。
我需要使用行模型中的一些内容构造一个MenuItem。
row.getItem()为null,因为行未在rowfactory回调中初始化。
有没有办法在填充行模型时推迟创建上下文菜单?
例如,如果行为String属性name =“foo”,则MenuItem应显示“Add foo”。
答案 0 :(得分:1)
在我回答Determine a JavaFX table row details when reusing tableview context menu的情况下,你会做
table.setRowFactory(t -> {
TableRow<Item> row = new TableRow<>();
ContextMenu contextMenu = new ContextMenu();
MenuItem item1 = new MenuItem();
// ...
row.itemProperty().addListener((obs, oldItem, newItem) -> {
item1.setText(/* value depending on newItem... */);
});
// ...
}