Premetto che non sono stato lì a leggermi minuziosamente il codice, anche perchè era meglio se lo includevi fra i due tag [*CODE] e [*/CODE] (senza l'asterisco).
Ma ho notato lo stesso un errore: noto che nella classe BCalcola fai uso di un oggetto di tipo Graf1 e all'interno di Graf1 crei un oggetto di tipo BCalcola... questo è, nella maggior parte dei casi e credo anche in questo caso, un errore: infatti tu poi cerchi di usare il metodo getRisultato di BCalcola attraverso l'oggetto creato all'interno di Graf1.
Quando si deve accedere a variabili istanziate in un determinato oggetto, bisogna ricorrere ad un riferimento a quell'oggetto all'interno del blocco (o classe) che deve ricevere il valore di ritorno del metodo, non ha nessun senso istanziare un nuovo oggetto.
Ora, nel codice che hai postato non si vede dove viene istanziato l'oggetto Graf1 all'interno di BCalcola, ma la struttura andrebbe rivista, in questo modo:
Crei un oggetto BCalcola che è l'applet principale. All'interno di quest'applet crei un oggetto Graf1, passando al suo costruttore il riferimento all'applet:
codice:
public class BCalcola extends Applet {
...
private Graf1 gr;
...
gr = new Graf1(..., this);
}
modificando, quindi, il costruttore di Graf1 aggiungendo come parametro l'applet:
codice:
public class Graf1 extends Canvas {
private BCalcola a;
...
public Graf1(..., BCalcola a) {
...
this.a = a;
}
}
Ora puoi utilizzare, come hai fatto, il metodo getRisultato() della classe BCalcola all'interno dell'oggetto Graf1 tramite l'oggetto a, sapendo che il valore di ritorno sarà coerente con ciò che è stato calcolato in base ai valori attualmente presenti.
Ciao.