Hai scritto tutto quello in un unico sorgente? Un sorgente .java può contenere più dichiarazioni di tipi (classi, interfacce, ...), solo uno public, però. E la cosa importante è che gli import devono stare all'inizio, tra la dichiarazione di package (se presente) e il primo tipo dichiarato.