Salve a tutti, ho un problema che mi sta facendo impazzire:
codice:
public class edicola
{
private 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);
}
}
questa è la classe con il main (in cui ho dovuto creare un oggetto della stessa classe e chiamarci la funzione che crea il frame -soluzione trovata sul forum java.sun.com-)
ora, in un'altra classe ho questo:
codice:
public class sviluppoQuotidiani extends JInternalFrame
{
//creo il frame interno con i componenti che mi servono
edicola.aggiungiFinestraInterna(sviluppo);
sviluppo.pack();
sviluppo.setVisible(true);
}
dove ovviamente: JInternalFrame sviluppo = new JInternalFrame(...)
quando chiamo il metodo della classe edicola (la prima classe scritta sopra) ottengo l'errore:
non-static
method aggiungiFinestraInterna(javax.swing.JInternalFrame ) cannot be referenced froma static context
l'unica soluzione è dichiarare il metodo aggiungiFinestraInterna della classe edicola come static????
Mi sembra strano in quanto se questa fosse l'unica soluzione dovrei dichiarare tutti i metodi di una classe, che vengono usati anche da altre classi, come "public static..." e non mi sembra una cosa molto sensata!