Boa tarde a todos…
Era um dia perfeito, nem calor nem frio, uma brisa boa no ar, meu humor em dia… até que…
No trabalho me passaram uma demanda para um JTree com JCheckBox…
Cá estou há duas horas pesquisando, encontrando uma solução mais gambiárrica que a outra… e decepcionantemente não existe esse componente pronto no Java (apesar de o Swing ser velho já). Eu não quero criar um mega framework, só adicionar um checkbox ao lado dos nós-folha e obter o estado (selecionado ou não) quando eu pego o nó no listener…
Sim, estou usando Swing em um Applet porque a aplicação web precisa em uma tela possuir controles para que o usuário faça a digitalização (escaneamento) de documentos para o fluxo de processo. A melhor forma de fazer isso via Java é através de um Applet assinado que tem acesso aos recursos da máquina cliente onde o Scanner estará instalado.
Bom, eu vou pular aqui o pesadelo que foi criar um Wrapper para acessar o Twain nativamente, não quero escrever um livro (não agora).
Daí a gente acha que vai ter esperanças, aparece um JavaFX, eu compro o JavaFX in Action… e olha que interessante… em Java FX não existem componentes padrão, apenas wrappers para componentes Swing existentes, com uma ameaça de que isso não seja suportado em próximas versões…
Meu colega aqui do lado tá se matando com uma JTable…
Fora isso, fica sempre aquela promessa… Ah, com JavaFX será possível desenvolver visualmente… só que nenhuma ferramenta (Eclipse, NetBeans, o que for) tem um suporte completo e eficaz pra isso…
Visual Basic pode ser uma bosta, mas se eu quero uma árvore com nós com checkboxes eu só escolho na palheta e arrasto…
Micro$oft pode ser o que for, mas na hora de produzir só tem uma ferramenta, a deles, e é muito boa. Qualquer componente que eu queira está ao alcance de um clique…
Tudo bem, Java é poderoso, dá pra fazer milhões de coisas, etc, etc…
MAS nem sempre eu quero criar mega-frameworks, mega-infras… normalmente eu só quero fazer o mesmo bom e velho crud de sempre, melhorias incluem repositórios de conteúdo e gerenciadores de processo, mas a interface, validações, regras de negócio são sempre a MESMA coisa: obter, tratar e persistir dados.
SIMPLESMENTE ISSO.
Mas o Java falha terrivelmente ao atender às demandas simples. Usar um componente em dez minutinhos pra criar alguma coisa. NÃÃÃÃÃO, tem orientação a aspecto, inversão de dependência, framework web, tudo uma maravilha… toca eu a ficar semanas configurando milhões de XMLs pra todos esses recursos fantásticos que vão o que? Servir pra obter, tratar e persistir dados, como sempre.
Ok, então fui mexer com Java 2D e 3D… Adivinha? Graphics2D é LENTO. Graphics3D tem o jeitão do Java de ser (toca a estudar meses pra dominar tudo)… ou então uso uma biblioteca JAI (que é “da galera”) com vários recursos faltando porque a galera tá trabalhando neles… uso uma biblioteca JOGL (da “galera” também), que há algum tempo trocou de mãos e mudou tudo, nem sei direito como fazer o download mais, e nem pensar em os exemplos antigos funcionarem com as versões novas…
Meu… nem todo projeto consiste em um laboratório de pesquisa e desenvolvimento com 80% do tempo disponível para estudo e pesquisa… eu diria até (quem diria) que 99,5% dos projetos consistem em PRODUZIR para demandas conhecidas.
Poderoso? Eu acho que sim… SIMPLES? Até hoje não, e fico frustrado a cada vez que percebo que NÃO VAI ficar simples…
Daí cai naquela… todo mundo usa o Struts 1 mesmo já que as empresas notaram que todo mundo já sabe usar isso mesmo, daqui a pouco troca pra Spring… mas não tem solução universal, interface única, componentes simples de usar…
Tô até pensando em repensar meus conceitos sobre o Java… MESMO… e trabalho com ele há anos, sou certificado, etc, etc, etc…
Bom, se alguém sabe um jeito SIMPLES E RÁPIDO pra adicionar checkbox em folha de JTree eu agradeço profundamente.
Abraços.
