所以我有一个名为mailbox的类,它是一组消息。
在“服务器”类中创建的消息示例:
Message message1 = new Message(senderRand, recipRand, subject1, today, body1);
邮箱类:
public class Mailbox {
public String name;
ObservableList<String> messagelist = FXCollections.observableArrayList();
ListView<String> list = new ListView<String>(messagelist);
public Mailbox (String name) {
this.name = name;
}
public int addMessage(Message message) {
messagelist.add(message);
}
我不确定我在做什么,但我的想法是我有一个像“收件箱”这样的邮箱对象,用于在javafx应用程序上显示电子邮件消息对象。然后我需要从“收件箱”邮箱中删除邮件并将其移动到“垃圾邮件”邮箱。
基本上我不明白如何创建这个支持数组。我应该在Mailbox类中扩展集合吗?我不知道如何格式化此邮箱类,以便我可以从javafx应用程序添加/删除邮件。我的javafx应用程序只是一个邮箱列表(收件箱,重要,垃圾箱),旁边是所选邮箱的邮件列表,旁边是所选邮件的显示。
需要邮箱是对象的集合。不知道怎么做。
答案 0 :(得分:0)
解决方案
FXCollections.observableArrayList()
调用已经为您创建了一个列表)。 <Message>
,而不是<String>
)。示例代码
public class Mailbox {
private final String name;
private final ObservableList<Message> messages =
FXCollections.observableArrayList();
public Mailbox (String name) {
this.name = name;
}
public void addMessage(Message message) {
messages.add(message);
}
public ObservableList<Message> messages() {
return FXCollections.unmodifiableObservableList(messages);
}
public String getName() {
return name;
}
}
实施说明
上述解决方案使用FXCollections.unmodifiableObservableList()
在提供的可观察列表之上创建并返回不可修改的包装列表。
return FXCollections.unmodifiableObservableList(messages);
如果外部对象可以直接修改消息列表而不与邮箱方法进一步交互,那么你可以写下:
return messages;
如果是这种情况,那么您可能根本不需要addMessage
方法调用,因为该类的用户可以只写:
mailbox.messages().add(new Message());