Atenção: por essa edição ser muito antiga não há arquivo PDF para download.Os artigos dessa edição estão disponíveis somente através do formato HTML.
Leveza Extrema com Thinlet
Mais uma Alternativa para o Desktop
Crie aplicações visuais leves com Java e XML, mas sem Swing, com o toolkit livre Thinlet
É sabido que a tecnologia Java vem ganhando espaço no desenvolvimento desktop. Um dos motivos é a liberdade que oferece para definir novos componentes ou estendê-los e para criar aplicações gráficas fáceis de manter, além de realmente multiplataforma. Porém, um dos problemas da principal tecnologia Java para aplicações locais, o Swing, é sua curva de aprendizado relativamente grande, especialmente para os desenvolvedores acostumados com o "arrastar e soltar"
de ferramentas como VB e Delphi. A API Thinlet se encaixa bem nessa lacuna.
O toolkit
Thinlet é uma API (ou toolkit) para a criação de interfaces gráficas leves. Aplicações
Thinlet são baseadas essencialmente numa única classe Java que processa a definição
das telas, gerencia eventos e realiza a chamada à lógica de negócio da aplicação. As
telas são definidas de forma declarativa em arquivos XML que seguem o padrão XUL
(XML User Interface Language). Para quem tem facilidade com HTML e conhecimentos
básicos de XML, será fácil aprender e usar a tecnologia.
O site oficial do projeto, thinlet.com, disponibiliza um arquivo zip com aproximadamente 300 Kb, contendo o jar binário, código-fonte completo, aplicações
de exemplo e documentação. O projeto é livre, sob licença LGPL. Depois de fazer o
download da versão mais atual e descompactar o zip, coloque o arquivo thinlet.jar no
classpath do seu sistema operacional (ou o acrescente como biblioteca à sua IDE).
Este jar tem apenas 38 kb e é tudo o que é necessário para rodar suas aplicações
baseadas na tecnologia. Aplicações Thinlet precisam apenas do JDK 1.1 e dispensam
o Swing. Podem rodar como aplicações ou como applets.
Componentes e definição XML
A Thinlet implementa os componentes gráficos mais comuns: PopupMenu, Label,
Button, CheckBox, ToggleButton, ComboBox, TextField, PasswordField, TextArea, TabbedPane, Panel, Desktop, Dialog, SpinBox, ProgressBar, Slider, SplitPane, List, Table, Tree, Separator e MenuBar. Estes seguem uma hierarquia semelhante à do AWT: quase todos são extensões de uma classe Component, compartilhando as propriedades e o comportamento da classe pai.
Nos arquivos de definição de telas, cada componente é especificado por um elemento
XML. Atributos determinam o estado inicial e a lógica de interação com o usuário
dos componentes.
Primeiro programa com Thinlet
Vamos pôr as mãos na massa. O primeiro exemplo (adaptado do site do projeto) é
muito simples: um contador com botões para decrementar, incrementar e zerar o
valor atual.
Primeiro devemos definir o XML de descrição da tela. Crie um arquivo contador.xml,
com o conteúdo mostrado na Listagem 1. Vamos analisar o código. A tag <panel>
define um painel para agrupar e organizar os componentes, o valor de text define o
texto exibido no painel e column divide o painel em colunas facilitando a disposição