ListView没有';t在selectedItemProperty上触发已更改事件

ListView没有';t在selectedItemProperty上触发已更改事件,listview,javafx-2,Listview,Javafx 2,我创建了一个包含一组字符串的ListView,它具有多重选择模式,最后我向SelectEditeProperty()添加了一个侦听器,如下所示: ObservableList<String> myStringsObsList = FXCollections.observableArrayList(strings); ListView<String> listView = new ListView<String>(myStringsObsList);

我创建了一个包含一组字符串的ListView,它具有多重选择模式,最后我向SelectEditeProperty()添加了一个侦听器,如下所示:

  ObservableList<String> myStringsObsList = FXCollections.observableArrayList(strings);
  ListView<String> listView = new ListView<String>(myStringsObsList);
  listView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);

  listView.getSelectionModel().selectedItemProperty().addListener(
    new ChangeListener<String>() {
        public void changed(ObservableValue<? extends String> ov, String old_val, String new_val) 
       {
         System.out.println("Selection Changed!");
       }
     }
  });
observeList myStringsObsList=FXCollections.observearraylist(字符串);
ListView ListView=新的ListView(myStringsObjsList);
listView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
listView.getSelectionModel().SelectEditeProperty().addListener(
新的ChangeListener(){

public void已更改(observeValue将此侦听器注册到listview:

listView.getSelectionModel().getSelectedItems()
        .addListener(new ListChangeListener<String>()
        {

            @Override
            public void onChanged(Change<? extends String> arg0)
            {
                System.out.println("Selection Changed!");

            }

        });
listView.getSelectionModel().getSelectedItems()
.addListener(新的ListChangeListener()
{
@凌驾

public void onChanged(更改将此侦听器注册到listview:

listView.getSelectionModel().getSelectedItems()
        .addListener(new ListChangeListener<String>()
        {

            @Override
            public void onChanged(Change<? extends String> arg0)
            {
                System.out.println("Selection Changed!");

            }

        });
listView.getSelectionModel().getSelectedItems()
.addListener(新的ListChangeListener()
{
@凌驾

更改后的public void(更改与上述答案相同,但添加行以捕获指数

listView.getSelectionModel().getSelectedItems()
    .addListener(new ListChangeListener<String>()
    {

        @Override
        public void onChanged(Change<? extends String> arg0)
        {
            System.out.println("Selection Changed!");
            ObservableList<Integer> sel = listView.getSelectionModel().getSelectedIndices();
        }

    });
listView.getSelectionModel().getSelectedItems()
.addListener(新的ListChangeListener()
{
@凌驾

更改后的public void(更改与上述答案相同,但添加行以捕获指数

listView.getSelectionModel().getSelectedItems()
    .addListener(new ListChangeListener<String>()
    {

        @Override
        public void onChanged(Change<? extends String> arg0)
        {
            System.out.println("Selection Changed!");
            ObservableList<Integer> sel = listView.getSelectionModel().getSelectedIndices();
        }

    });
listView.getSelectionModel().getSelectedItems()
.addListener(新的ListChangeListener()
{
@凌驾

我有同样的问题,你的解决方案也很好。谢谢我也有同样的问题,你的解决方案也很好。谢谢