这是我的第一篇文章,我还是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]);
}
});