it depends on many parameters.
if u are using oracle as u database u can use oracle reports.it is a great tool with lots of APIs for java. but a bit difficult.
i have worked with jasper and jfreereports they are both good.jfreereport is easier but still has not reached its first version.
jasper is widely used in java community.
if u will have lots of reports with different syles,templates and colors use an opensource.
but if u dont have lots of reports simply put them in an html table and free urself from report generator's complexities!!