JavaFX - ListView选择和使文本出现

时间:2018-03-19 18:40:33

标签: java listview javafx

这是我的第一篇文章,我还是Java的初学者。此程序的目的是创建一个包含食物项目的菜单,并能够使用ListView(在这种情况下是变量菜单)选择项目。当我在ListView中选择食物时,它们应该出现在屏幕的右侧,显示所选内容的文本(即,如果从ListView中选择汉堡和热狗,则汉堡和热狗在右侧显示为文本屏幕)。我也得到了一些照片,使用ImageView,这些图像看起来很好没有问题。 问题是,当我从ListView中选择时,没有任何内容显示,因为我不确定如何使其显示 ...我已尝试获取索引,然后设置文本,如此得到物品等......我此刻真的迷失了。我只是不确定它为什么不起作用,因为在我的脑海里,计划工作正常,我得到索引,然后将该索引设置为ListView,获取字符串,但它不是工作。我做错了什么,或者我该如何考虑解决这个问题?

编辑: 当我尝试添加此行中的文本时:

vBox.getChildren().add(foodItemsList[i]);

foodItemsList[i]有错误

  

期望找到ArrayType,而不是找到   javafx.collections.ObservableList

这是我的代码:

menu.getSelectionModel().selectedItemProperty().addListener( e -> {
        flowPane.getChildren().clear();

        for (Integer i : menu.getSelectionModel().getSelectedIndices()) {
            flowPane.getChildren().add(foodPics[i]);
        }
    });

    // ### This just displays the current value and the value I last selected, if I selected 3+ values,
    // the last 2 are the only ones that show.
    menu.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
        @Override
        public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
            item1.setText(newValue);
            item2.setText(oldValue);
        }
    });

    menu.getSelectionModel().selectedItemProperty().addListener( e -> {
        flowPane.getChildren().clear();
        for (String i : menu.getSelectionModel().getSelectedItems()) {
            vBox.getChildren().add(foodItemsList[i]);
        }
    });

0 个答案:

没有答案