Non ho capito bene come quand'è che si può definire un metodo di tipo "static"

Per esempio, supponiamo di avere un editor di testo.
In questa interfaccia c'è un classe che definirà un:

JFrame jf;

che contiene un

JTextPane editor;

Poi ci saranno tutta una serie di classi che, ad esempio, si occperanno di:

creare una menubar
creare una toolbar
creare azioni (ad esempio cerca file, seleziona tutto ec...)

Prendiamo la classe che si occuperà della funzione "salva file"
In questa classe dovrà comparire una jotionpane che ti permettaa di specificare la directory in cui vuoi salvare il file. Il suo costruttore richiede di specificare il un jframe e io voglio dargli il frame:

jf

definito nell'altra classe.
Ora invece di farmi un oggetto della classe che contiene il jf e poi chiamare il metodo

getFrame

posso definire il suddetto metodo di tipo statico in modo che ogni volta che avrò bisono del jframe lo possa richiamare in maniera più semplice?

nomeClasse.getFrame();

Stesso discorso per la classe che contiene l'editor. Un sacco di funzioni avranno bisogno del testo contenuto nell'editor
Invece di istanziare un oggetto della classe e poi richiamare il metodo

getEditor()

Posso dichiararlo statico?
Se lo dichiaro statico anche la variabile editor dovrà essere statica.

E' corretto?

Io penso di si perchè avere una variabile statica vuol dire ch la variabile assume lo stesso valore in ognuna delle istanze create della classe che lo contiene, ed infatti la variabile editor deve essere uguale in qualunque parte del programma venga usato

Mi servono delle delucidazioni :-D