我有这个自定义JavaFX表工厂单元格:
Callback<TableColumn, TableCell> cellFactory = new Callback<TableColumn, TableCell>()
{
@Override
public TableCell call(TableColumn p)
{
TableCell cell = new TableCell<TableDataObj, Object>()
{
@Override
public void updateItem(Object item, boolean empty)
{
super.updateItem(item, empty);
setText(empty ? null : getString());
setGraphic(null);
}
private String getString()
{
return getItem() == null ? "" : getItem().toString();
}
};
cell.addEventFilter(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>()
{
@Override
public void handle(MouseEvent event)
{
if (event.getClickCount() > 1)
{
EventsPanel ep = new EventsPanel();
TableDataObj person = (TableDataObj) table.getSelectionModel().getSelectedItem();
ep.GeneralConfiguration(person);
}
}
});
return cell;
}
};
我注意到当我用鼠标选择表格行时,我可以在每次点击表格时触发事件。我怎样才能修复代码,只有当我把表格行弄清楚时才能触发事件。
答案 0 :(得分:0)
类似的东西:
class MyClass {
MyClass & foo() { return *this; }
}
你的听众应该工作。