Nono, BlueJ me lo compila senza problemi, lo eseguo, però al click sul bottone non accade ciò che dovrebbe accadere.

Per verificare se si tratta realmente della variabile, l'ho settata sin dall'inizio su true, così facendo viene eseguito senza problemi.

Quindi credo si tratti dell'action performed

codice:
public class Sposta implements ActionListener
{
    public void actionPerformed(ActionEvent e)
    {
        if (i == true ){ i=false ; creaico(); }  
        if (i == false){ i=true ;  creaico(); }   <<< Ecco qui cambia il valore e riesegue creaico(), ma questa volta dovrebbe entrare nel if, ma stranamente non accade.
    }
}
che non cambia il valore della variabile.