jun

25

Death to DefaultTableModel! AbstractTableModel Rulez!

By Felipe Saab

Antes que alguém venha dizer: ‘Olha o título, esse cara num sabe nada!’ ou ‘DefaultTableModel extends AbstractTableModel!! Asshole!!!’ eu já vou dizendo: Eu sei que DefaultTableModel herda de AbstractTableModel, a ideia do título é abandonar a DefaultTableModel e criar suas próprias classes utilizando os métodos da AbstractTableModel do jeito que nos servir melhor.

Dito isso, vamos  ao assunto de hoje: ‘DefaultTableModel e o porque de não utilizá-la’.

Quem já programou utilizando a API Swing e nunca utilizou a JTable que atire a primeira pedra.

Agora, quem já usou JTable e nunca utilizou a DefaultTableModel pode atirar pedras a vontade!

Aqui no blog mesmo… Eu já utilizei DefaultTabelModel em alguns posts. Mas pois bem, vamos abolir essa má prática. Seguem alguns motivos do porque não devemos utilizar a DefaultTableModel:

1. É mais difícil que escrever seu próprio TableModel;
2. É mais lento (usa classes sincronizadas);
3. Ocupa mais espaço em memória (duplica seus dados);
4. Deixa o código mais confuso e difícil de manter;
5. Usa casts inseguros;
6. Força que você tenha que exibir informações desnecessárias (como o ID) na tabela, ou controlar o ID numa lista separada;
7. Faz a sua mulher te deixar, o leite da sua geladeira azedar, e pessoas apontarem o dedo para você na rua.

Motivos muito bem explicados pelo ViniGodoy neste post do GUJ.

Mas se a DefaultTableModel é tão ruim assim, o que devemos fazer? Tudo se resume a uma classe: AbstractTableModel.

Read more »

mar

14

Robot ? O Que é isso?

By Felipe Saab

Tempo é um troço foda… Só falta… nunca tem sobrando…
Depois de muito tempo sem um post, aqui estamos nós.

Hoje a gente vai desvendar a classe Robot, muito útil para testes automáticos, criação de bots e outros.

Em resumo, a classe Robot simula eventos do teclado, mouse e outros.

É tudo muito fácil, vamos ao código:

Read more »

jan

19

Adicionando JCalendar e JDateChooser à paleta do Netbeans

By Felipe Saab

Se você não conhece esse componente, deveria conhecer!

São componentos visuais que facilitam imensamente o usuário selecionar uma data. Segue uma pequena imagem dos componentes:

image

O JCalendar é como o calendário do Windows, já o JDateChooser é como um combobox, que abre um mini-calendário quando o usuário clica no ícone do lado direito e o fecha quando o usuário clica na data desejada.

Site do projeto – http://www.toedter.com/en/jcalendar/

Read more »

ago

30

Abrindo um menu popup ao clicar em um botão

By Felipe Saab

1:33h da madrugada de um domingo e eu to começando a escreve esse post….
Fim de carreira neh… aiuhaiuhaiuahiahu

Mas vamos ao que interessa: às vezes pode ser bem interessante abrir um menu popup ao clicar em um botão da sua aplicação, como por exemplo em uma tela de cadastro de contas a pagar. A conta a pagar pode estar vinculada a um fornecedor, a um equipamento, a um veículo ou seja lá o que for que você o cliente queira.

Uma boa prática que eu gosto de usar é sempre deixar o usuário poder fazer uma busquinha rápida pelo fornecedor (equipamento, veículo, …) ao invés de ter que digitar o código dele lá.

Sendo assim, ao invés de fazer um botão para a busca de fornecedores, outro botão pra busca disso e outro pra busca daquilo, eu faço apenas um botão que quando clicado abre um menu com todas as opções e frescuras que eu quiser.

Read more »

ago

27

Mudando a cor, fonte, alinhamento, etc… de células de JTable

By Felipe Saab

Ae galera,
Hoje vou dar uma dica bem interessante pra manipular as células de uma JTable.

Vamos imaginar que devemos representar uma matriz dentro de uma JTable, ou seja, devemos ter um cabeçalho para as linhas e outro para as colunas.
Nosso objetivo vai ser construir a seguinte matriz:

Read more »