如何在用户 'erases' 时删除一个 JavaFX ListView 项?
How to remove a JavaFX ListView item when the user 'erases' it?
我有一个带有 TextField
样式单元格的 ListView
。 (它实际上是我自己的 ListCell
,我偷猎并修改它以实现每次击键验证。)
有时,用户不会点击附近的 'delete' 按钮,而是
- 开始编辑单元格
- 擦除里面的所有文字
- 提交编辑。
他做这一切都是为了试图删除该项目。如果可能的话,我想支持这个用例,但我不知道从哪里开始。建议?
你可以做到
list.setOnEditCommit( new EventHandler<ListView.EditEvent<String>>()
{
@Override
public void handle( ListView.EditEvent<String> event )
{
String val = event.getNewValue();
if ( val == null || val.trim().isEmpty() )
{
System.out.println( "removed = " + event.getSource().getItems().remove( event.getIndex() ) );
}
}
} );
我有一个带有 TextField
样式单元格的 ListView
。 (它实际上是我自己的 ListCell
,我偷猎并修改它以实现每次击键验证。)
有时,用户不会点击附近的 'delete' 按钮,而是
- 开始编辑单元格
- 擦除里面的所有文字
- 提交编辑。
他做这一切都是为了试图删除该项目。如果可能的话,我想支持这个用例,但我不知道从哪里开始。建议?
你可以做到
list.setOnEditCommit( new EventHandler<ListView.EditEvent<String>>()
{
@Override
public void handle( ListView.EditEvent<String> event )
{
String val = event.getNewValue();
if ( val == null || val.trim().isEmpty() )
{
System.out.println( "removed = " + event.getSource().getItems().remove( event.getIndex() ) );
}
}
} );