one question that always comes up when my java project gets bigger is if there is an easy way to link to a specific object that cannot be referenced by super or getParent (). The following graph should illustrate my current problem:

For each FileListItem, I want to install a new FileListItemController, which needs methods from ProtocolController. Is there a way to refer to the ProtocolController object set mainly in FileListItems, other than passing it through mainWindow, FileListContentPanel, FileListItems?
Thanks first to all your answers.
I use a model, view, control template for my project.
, , . , :
public class Main {
public static void main(String [ ] args) {
ProtocolController pc = new ProtocolController();
mainWindow mw = new mainWindow();
}
}
public class ProtocolController {
File protocol;
public ProtocolController(File protocol){
this.protocol = protocol;
}
public void writeSomethingToProtocolFile(String something){
}
}
public class mainWindow {
public mainWindow(){
FileListContentPanel flcp = new FileListContentPanel();
}
}
public class FileListContentPanel {
public FileListContentPanel(){
int numListItems = 10;
for (int i = 0; i < 10; i++) {
FileListItem fli = new FileListItem();
FileListItemController flic = new FileListItemController(fli);
}
}
}
public class FileListItemController {
public FileListItemController(FileListItem fli){
}
public void addSomethingToProtocol(String something){
}
}