如您所见,唯一启用的按钮是全部答复。这是因为我无法转发或回复未选择的电子邮件,但可以回复列表中的所有电子邮件。然后,如果我删除所有电子邮件,则输出为:
所有按钮均被禁用(这是正确的)。现在,如果我通过按 Cambia帐户更改帐户,则会生成一个新的电子邮件列表,但是全部答复按钮将不会启用。我猜这是因为侦听器仅检查当前邮件的状态,而不检查是否存在它们的列表。我该如何解决?
这是管理禁用按钮的部分的代码:
public void initModel(DataModel model) {
if (this.model != null) {
throw new IllegalStateException("Model can only be initialized once");
}
this.model = model;
model.currentEmailProperty().addListener((obs, oldEmail, newEmail) -> {
if (oldEmail != null) {
reply.setDisable(false);
forward.setDisable(false);
replyall.setDisable(true);
}
if (newEmail == null) {
reply.setDisable(true);
forward.setDisable(true);
replyall.setDisable(true);
} else {
reply.setDisable(false);
forward.setDisable(false);
replyall.setDisable(false);
}
});
}
答案 0 :(得分:0)
如果您的replyall
按钮的禁用状态取决于列表是否包含项目,那么为什么要在currentEmailProperty
侦听器中对其进行更改?您应该听列表的更改并在那里进行更新。