Если вам нужно передать this
другой функции, например, конструктору GUI, вам нужен объект, а showGUI лучше всего оставить как нестатический метод:
@Override protected void startup() {
showGUI();
}
public void showGUI() {
show(new GUI(this));
}
Если вам действительно нужностатический метод, вам нужен объект для работы:
public static void createApplicationAndShowGUI() {
Main main = getApplication();
show(new GUI(main));
}
или даже лучше:
public static void createApplicationAndShowGUI() {
Main main = getApplication();
main.startup();
}
или даже лучше, не создавайте статический метод:
// in your context outside of the Main object
Main main = Main.getApplication();
main.showGUI();