gpt4 book ai didi

java - Java中类之间的事件处理

转载 作者:太空宇宙 更新时间:2023-11-04 09:12:33 25 4
gpt4 key购买 nike

我有这门课:

public class Registry {
private ArrayList<Communication> communicationList;
private ArrayList<Suspect> suspectList;
}

在主课上,我添加了嫌疑人:

registry.addSuspect(s1);
registry.addSuspect(s2);
registry.addSuspect(s3);

我有一个窗口类FindSuspect,它有一个文本字段和一个按钮。它将如何在 registry.suspectList 中搜索嫌疑人的姓名?该类位于 FindSuspect 类内部:

class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
//There will be an if statement here, which will check if the textField.getText() is a suspect inside
//the registry.suspectList
JOptionPane.showMessageDialog(null,"Suspect " + textField.getText() + " not found!");
}
}

我很困惑,因为唯一的注册表项位于我的主目录中,因此我无法从 FindSuspect 类(按钮监听器所在的位置)访问嫌疑人列表,这意味着我无法搜索嫌疑人。

最佳答案

假设您的 Registry 类实例可以通过 actionPerformed 方法访问,并且 Suspect 类有一个名为 name 的字段

您可以添加此代码

boolean matchNotFound = registry.getSuspectList()
.stream()
.filter(s -> s.getName().equals(textField.getText()))
.noneMatch();

if (matchNotFound) {
JOptionPane.showMessageDialog(null,"Suspect " + textField.getText() + " not found!");
}

要访问 FindSuspect 类中的 Registry,有多种方法:

  1. 在主类中将其标记为静态并在此处访问它
  2. 将其作为“FindSuspect”构造函数中的参数传递
  3. 将其移至可通过 FindSuspect 访问的另一个类

关于java - Java中类之间的事件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59504073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com