Relatórios em Java

Para criar relatórios (visualização/impressão) baseado em resultados de um banco de dados, é preciso alguma ferramenta externa, ou o Java possui Classes próprias para isso?

http://jasperforge.org/sf/projects/jasperreports

Birt e JasperReports são feitos em Java?

Sim!

Há varias outras opções tambem, alguns comerciais como: Oracle Reports, Crystal Reports, etc…

Mas o Java possui Classes próprias para se fazer relatórios, ou tenho mesmo que recorrer a essas ferramentas?

Na API do Java só tem coisas basicas: http://java.sun.com/j2se/1.5.0/docs/api/

Você pode escolher o que usar.

Mas essas coisas básicas servem para construir bons relatórios? Quais são essas Classes?
Obrigado.

O que eu quiz dizer com “coisas basicas” é que a API padrão não tem esse tipo de coisa, só tem coisas basicas da linguagem, todo o resto é feito por outras API’s, algumas da propria Sun, outras de terceiros.

Para um iniciante nessa parte de exibição/impressão de relatórios, qual API você me recomendaria?

JasperReports é interessante!

Eu posso começar a usar essa API num projeto de BD que já está em andamento? Ou é recomendado começar a programar o projeto do zero?

Tanto faz!

Obrigado. Qualquer dúvida volto a perguntar.