如何使用 Java FX 垂直显示元素?

How do I display elements vertically using Java FX?

我有一个 class 类型 Message 的 hashSet 和一个有效的 toString() 方法。 "refresh" 按钮已正确创建,但其实现存在问题。 注:

//Menu is an ObservableList<String>
//Mymail contains the hashset
//refresh() is a method that adds a random message to the hashset
//GetMessages() returns the hashSet 
//the toString() method below is hashset's toString()

refresh.setOnAction(e -> {
    menu.setAll(myMail.refresh().getMessages().toString());
});

导致在 window 中打印以下内容:

我应该怎么做才能让消息像这样垂直显示:

"Message One Text"
"Message Two Text"
"Message Three Text"

据我们猜测,这应该可以解决问题:

refresh.setOnAction(e -> menu.setAll(myMail.refresh().getMessages()));

因为 menu 是一个 Collection 并且可以/应该作为一个添加,因此每个元素都会相应地添加。

编辑:第二次尝试:

refresh.setOnAction(e -> myMail.refresh().getMessages().stream().map(Message::toString).forEach(menu::add));

您可以 addAll ObservableList:

refresh.setOnAction(e -> menu.addAll(myMail.refresh().getMessages()));

并在消息中使用 toString,将消息转换为字符串,而不是在 Mymail 中使用它。