lo static serve per indicare metodi che possono essere utilizzati senza istanziare oggetti del tipo della classe...per capirci nel tuo caso così come hai scritto il codice non puoi scrivere
codice:
edicola.aggiungiFinestraInterna(sviluppo);
e basta ma dovresti prima creare un oggetto di tipo edicola:
codice:
edicola e = new edicola()
edicola.aggiungiFinestraInterna(sviluppo);
in alternativa puoi lasciare solo quello che hai scritto tu e mettere il metodo che usi come static.
Per quanto riguarda il problema della variabile mydesktop semplicemente devi sapere che nei metodi static puoi usare solo variabili static. Se dichiari una variabile dentro ad un metodo che è static è resa static automaticamente (per esempio se dichiari una variabile qualsiasi nel main), in caso contrario devi esplicitare il fatto che la variabile è static:
codice:
private static JDesktopPane mydesktop;
Quindi per riassumere io fari così:
codice:
public class edicola
{
private static JDesktopPane mydesktop;
public static void main(String[] args) {
edicola istanzaEdicola = new edicola();
istanzaEdicola.creaFrame();
}
public void creaFrame()
{
//crea il frame
}
public void aggiungiFinestraInterna(JInternalFrame intFra) {
JInternalFrame FrameDaAggiungere = intFra;
mydesktop.add(FrameDaAggiungere);
}
}
e l'altra classe lasciarla uguale:
codice:
public class sviluppoQuotidiani extends JInternalFrame
{
//creo il frame interno con i componenti che mi servono
edicola.aggiungiFinestraInterna(sviluppo);
sviluppo.pack();
sviluppo.setVisible(true);
}
Spero di averti chiarito la cosa!
Ciao.