0
我有这样的习俗JavaFX的表厂电池:仅在表行TRIGER鼠标事件点击
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;
}
};
我注意到,当我用鼠标选择表行,我可以每次触发事件,我点击表。我如何才能修复代码来触发事件,只有当我对表格行进行调整时才会触发事件。
不检查'if(!cell.isEmpty()){...}'是否工作? –