segunda-feira, 28 de novembro de 2011

Imprimir JTable Print

Para casos onde seja apenas necessário imprimir os dados de uma Jtable, sem cabecalhos nem imagens etc, pode-se utilizar o método print das jTable, definindo apenas o título para imprimir.

sexta-feira, 25 de novembro de 2011

A melhor dica de todos os tempos e um pouco de código fonte

A dica que segue é triste, mas considero uma boa dica.

NUNCA UTILIZE LETRAS MAIÚSCULAS AO DESENVOLVER COM JAVA.

Eu já perdi a conta de quantos problemas e horas passei pesquisando e pedindo ao Pai Google como resolver erros no Java, e muitos deles foi por eu ter usado uma letra maiúscula. Por exemplo, usar letra maiúscula em nome de tabela ou campo no banco de dados, volta e meia dá problema com o Hibernate.

E hoje, tentando passar os dados de uma abstractTableModel diretamente para um relatório no iReport Jasper, recebi várias erros como:

java.lang.NoSuchMethodException: Unknown property 'Data' on class


Depois de várias alteracões uma coisa me chamou a atencão, erro no campo Data, o D maiúsculo... refatorei o nome para data tanto na classe como no relatório e o erro passou pro campo seguinte... CustoMO. Eureka, descobri o problema, mais uma vez as maiúsculas. Olha outro que sofreu...

Se não ajustar no iReport  dá um erro tipo este:

net.sf.jasperreport.engine.JRException:Error retrieving field value bean: Campo



Bem, aproveitando o post, vou postar o código da AbstractTableModel que montei pra vocês darem risadas das minhas gambiarras e poderem copia-las depois quando quiserem jogar os dados da tablemodel pra um relatório jasper :)



Vejam que acabei criando uma classe interna com os mesmos campos/colunas da table model que uso nas jTable... campos em MINÚSCULO! Ai fiz uma funcão carregaDadosPrint() que busca os dados e joga pra ArrayList que vai pro relatório a ser impresso.

Tenho certeza que o código pode ser bastante melhorado visto que Java não é o meu forte, mas acredito que quem está iniciando pode aprender muitas coisas estudando ele.

Aproveita pra colocar alguns links que me ajudaram nos últimos dias:
Java sem café.!: JavaSE: CRUD em Swing
Implementando AbstractTableModel - Java Free.org
A Simple Interactive JTable Tutorial
Java Swing | extend AbstractTableModel and use it with JTable | several questions - Stack Overflow
Creating a Set | Example Depot
Não consigo buscar dado do AbstractTableModel.. pq?
Morte definitiva ao default table model
Máscara monetária - Java Free.org 
Cómo crear interfaces gráficas con Look And Feel en Java
Cotidiano em Wonderland: Look and Feel
Testando vários Look And Feels - Java Free.org 
Printing simple tabular reports with JTable - Alan's Ramblings
Marc Nuri's Happy Coding Blog » Updated: Displaying a jTable inside another jTable // JTable cellRenderer
Marc Nuri's Happy Coding Blog » Getting started with JasperReports // Printing reports from your java app (Part III)
sagara's Blog: JTable to Dynamic PDF Report using JasperReport
Getting Started | DynamicJasper
Preencher Relatórios JasperReport com Hibernate
JasperReports 4.0.1 - Hibernate Sample
Usando o JRBeanCollectionDataSource » Roberto Furutani

quarta-feira, 9 de novembro de 2011

AbstractTableModel x DefaultTableModel

Olá, estou com pouco tempo pra escrever um bom post, mas não posso deixar de recomendar a todos que parem de usar DefaultTableModel e comecem com AbstractTableModel. Seguem 3 links interessantes que vão lhe levar para muitos outros links e exemplos :), é isso ai, bom estudo.

http://www.guj.com.br/java/138916-duvida-pegar-objeto-da-jtable-resolvido

http://www.guj.com.br/java/199067-redimensionar-jtable---pra-variar--resolvido-/2#1001295

http://stackoverflow.com/questions/4303680/java-swing-extend-abstracttablemodel-and-use-it-with-jtable-several-question

quinta-feira, 13 de outubro de 2011

Engenharia Reversa no Hibernate com Netbeans

Olá!

Se você vai usar o Hibernate para desenvolver aplicativos Java, recomendo fortemente que leia este tutorial http://netbeans.org/kb/docs/java/hibernate-java-se.html, você vai aprender a utilizar alguns recursos bem legais como o HQL Query editor e gerar POJOs e arquivos de mapeamento das tabelas (models, classes) no banco através de um recurso de engenharia reversa do Hibernate.

No tutorial é para Swing apps, mas este conhecimento você vai usar em qualquer projeto que utilize Java e Hibernate.

___
Bolívar Butzke
bolivarbutzke.blogspot.com