The bodies were found about 160km from land and 10km from the plane's last communication with air traffic control. The plane vanished on Sunday on its way from Surabaya in Indonesia to Singapore after encountering storm clouds.
Six bodies were taken to an Indonesian navy ship, First Admiral Sigit Setiayanta, the Naval Aviation Centre commander at the Surabaya air force base, told reporters. The victims were not wearing life jackets.
advertisement
Search and rescue teams were lowered on ropes from a hovering helicopter amidst strong winds to recover the bodies.
The discovery came after several pieces of red, white and black debris were spotted in the Java Sea near Borneo island. AirAsia planes are red and white.
Mr Supriyadi said that, from an aircraft above, he saw what appeared to be a life jacket and an emergency exit door. More wreckage could be seen beneath the water.
Indonesian television showed the half-naked body of a man whose shirt partially covered his head. The images sent a shockwave through family members watching together in a waiting room at Surabaya airport.
Many screamed and wailed uncontrollably, breaking down in tears while they squeezed each other. One middle-aged man collapsed and had to be taken out on a stretcher.
AirAsia group chief executive Tony Fernandes said on Twitter: "My heart is filled with sadness for all the families involved in QZ 8501. On behalf of AirAsia my condolences to all. Words cannot express how sorry I am."