I recommend
JasperReports. There are others (Crystal Reports, JFreeReport), but I've not worked with any that are as easy to use/integrate as Jasper. (Crystal has some features that I wish Jasper had, but Crystal is annoying to use in Java, and it costs money. And JasperReports is open source, so if I had the time and inclination, I could add those features...)
Piscis Babelis est parvus, flavus, et hiridicus, et est probabiliter insolitissima raritas in toto mundo.