Из ваших комментариев кажется, что CubeGui - это колебательный фрейм, который вы открываете только один раз, и вы хотите получить ссылку на этот фрейм для вызова метода moveThat. Лучший способ - передать ссылку на ваш класс решателя:
открытый класс Солвер {
private CubeGui gui;
public Solver(CubeGui gui) {
this.gui = gui;
}
void solveIt(){
gui.moveThat();
}
}
Если на практике это действительно сложно, вы можете подумать о том, чтобы сделать CubeGui синглтоном (если это не оправдано, иногда это имеет смысл, например, в этом случае, когда у вас отображается не один кадр). Для этого вы делаете конструктор CubeGui закрытым, а затем добавляете метод в CubeGui следующим образом:
private static CubeGui singleInstance;
public static CubeGui getInstance() {
if (singleInstance == null) {
singleInstance = new CubeGui();
}
return singleInstance;
}
Тогда в вашем решателе вы можете сделать:
CubeGui.getInstance().moveThat();
Я, вероятно, получу понижательную оценку за предложение Синглтона. Я мог бы даже заслужить это, но похоже, что вопрос должен знать, как это выглядит. Чтобы противостоять этому, см. здесь .
Так что, если это вообще возможно, передайте объект в качестве параметра либо в конструктор, либо в метод.