ecco uno dei motivi per cui dico che gli IDE sono la rovina di chi sta imparando a programmare.
A prescindere da java, il main è una funzione particolare che serve da startpoint al programma.
Per fare in modo che una classe faccia da startpoint, devi giustamente inserire il metodo:
codice:
public class Main{
public static void main(String args[]){}
}
per funzionare.
Ma la classe che ha al suo interno il main è una normalissima classe, per cui questo è valido
codice:
public class Main{
public Main(){}
public void method1(){}
private void method2(){
method1();
}
public static void main(String [] args){
Main main = new Main();
main.method2();
}
}
che fa esattamente quello che fa il tuo main, ma (e fermo restando che quello non cambia) questo codice produce lo stesso result:
codice:
public class Main2 {
public static void main(String [] args){
Main main = new Main();
main.method1();
}
}
è chiaro quindi che da qualsiasi classe puoi richiamare un'altra classe istanziandola e richiamando i vari metodi disponibili (e la disponibilità è resa tramite i modificatori di visibilità).
Anche questo è valido
codice:
public class Main2 {
public static void main(String [] args){
Main.main(args);
}
}
Nel tuo codice, devi avere un main che istanzia la tua classe che estende JFrame (facendo in modo che il costruttore chiami creagui). Ricorda l'EDT (quello che fa nel main è necessario)
ps chiedi al mod di spostarti, java ha la sezione dedicata