Il problema è sicuramente dovuto all’ambiente lstlisting! Essendo un codice credo che non sia pensato per essere centrato ma per essere allineato a sinistra con il testo! (non ne sono sicuro al 100% ma penso sia così) Credo sia anche sbagliato volerlo aggiungere come figura! Non ti va bene come “Codice”? Anche senza l’ambiente figure, infatti, si possono ottenere le didascalie e trattare il codice come un ambiente flottante scrivendo, ad esempio:
`\usepackage{listings} % pacchetto per codice sorgente
\lstset{language=Java,basicstyle=\ttfamily}
…
\begin{lstlisting}[tabsize=3,float=htb,caption={didascalia},label=cod:etichetta]
codice java…
\end{lstlisting} `
La scritta “listing” la si può trasformare in “codice” aggiungendo nel preambolo
`\addto\captionsitalian{\renewcommand{\lstlistingname}{Codice}}`
Se comunque desideri un rientro rispetto al margine sinistro puoi aggiungere come settaggio del pacchetto (lstset) l’opzione
`xleftmargin=A`
dove A è il margine aggiuntivo che desideri! Spero di essere stato utile
Fra