我在 javafx2 中制作了一个 fxml 文件。
我有一个 Person 对象列表。此列表的名称是Entries
。我有一个 ObservableList myObservableList
,. 在这里面我想贴标签。每个标签必须包含一对图像人物和他的名字的文字。我写了这段代码:
for (int i=0; i<numberOfEntries; i++){
currentEntry = Entries.get(i);
name=currentEntry.getName();
image1 = new Image("file:"+currentEntry.getIcon());
imageView1= new ImageView();
imageView1.setFitHeight(50);
imageView1.setFitWidth(70);
imageView1.setImage(image1);
label = new Label(name, imageView1);
label.setFont(new Font("serif", 32));
myObservableList.add(label);
}
它工作正常,但是在放置了一些图像之后,JVM 给了我以下错误消息:
Caused by: java.lang.OutOfMemoryError: Java heap space.
此错误来自代码行 image1 = new Image("file:"+currentEntry.getIcon());
最后,我想将 myObservableList 的所有元素放入一个 ComboBox 项中。为此,在 java 控制器的 Initialize 方法中,我写了:
myComboBox.setItems(myObservableList);
ListCell<Label> buttonCell = new ListCell<Label>() {
@Override protected void updateItem(Label item, boolean isEmpty) {
super.updateItem(item, isEmpty);
setText(item==null ? "" : item.getText());
}
};
myComboBox.setButtonCell(buttonCell);
我确信我在 javafx 方面没有足够的经验,而且我不知道我必须如何处理,因为我有一个组合框,在所有项目的同一单元格中都有一对图标和文本。
我要非常感谢 Peter Duniho 和 PakkuDon 帮助我提高文本中的英语水平。