繁体   English   中英

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

[英]How do I display elements vertically using Java FX?

我有一个Message类的hashSet,带有一个有效的toString()方法。 正确创建了“刷新”按钮,但是其实现存在问题。 注意:

//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());
});

导致在窗口中打印以下内容: 在此处输入图片说明

为了使消息垂直显示,我应该怎么做:

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

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

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

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

编辑:第二次尝试:

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

您可以addAll所有的ObservableList:

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

并在Message中使用toString ,以将消息转换为String,而不是在Mymail中使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM