如何使用 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
中使用它。
我有一个 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
中使用它。