Pergunta sobre Thinlet

27 respostas
J2Alex

Depois de ler o artigo do Daniel na JM fiquei interessado sobre o assunto.

Como sempre dizem que o o Swing é pesado, eu gostaria de saber se o Thinlet apresenta uma melhor performance.

É possível criar aplicativos completos (e complexos) com várias telas usando Thinlet?

Grato …

27 Respostas

T

Dê uma olhada nesta aplicação.
http://thinfeeder.sourceforge.net/

É muito bem-feita, e 100% Thinlets.

danieldestro

Nos meus testes Thinlet provou ser bastante leve e tem uma interface visual agradável.

Infelizmente não é possível customizar os componentes do Thinlet do mesmo modo como no Swing, mas a sua facilidade de uso pode certamente ser considerada.

Uma outra aplicação que eu fiz com Thinlet pode ser vista aqui:
http://java.danieldestro.com.br/codes/FutManager.zip

Thinlet vem sendo adotado por muitas empresas. A Summa, por exemplo, desenvolve projetos com Thinlet, usando seu framework chamado Genesis (http://genesis.dev.java.net). Tem até um hospital canadense usando Thinlet nos PDAs e sistemas internos para triagem de pacientes.

J2Alex

Andei dando uma olhada na API do Thinlet e tenho uma dúvida:

Em um TextField ou TextArea é possível interceptar as teclas que são digitadas? Exemplo: Permitir somente a entrada de números, ou restringir a entrada a apenas determinados tipos de valores ou ainda substituir um caracter digitado por outro - substiuir “.” por “,” por exemplo.

Grato …

brlima

O Thinlet é feito sobre o AWT neh? Por isso ele é mais leve que o swing…

No mesmo estilo do Thinlet , que usa XML pra renderizar o layout, vc tem o SwixML , que tb renderiza XML, so que gera componentes Swing.

Ele é legal pois pra quem mexe com swing, fica facil construir telas no arquivo XML. E o bom é que vc pode customizar os componentes, assim como no swing :smiley: E o layout fica bem separado do codigo.

Bem, fica ai a dica. Estou estudando um pouco sobre o SwixML, e to gostando:D

Abraços!

_fs

O Thinlet é exelente para o que ele se propõe a fazer.
Para aplicações que são formadas por alguns formulários e listagens, ele é mais que o suficiente. Também recomendado para pequenas aplicações (quase todas que já me deparei até hoje).

Mas se precisa de alguma coisa mais incrementada, melhor usar alguma alternativa.

E nem pense em abrir a pequenissima classe do Thinlet com mais de 8 mil linhas para fazer alguma customização hehe o código é bem nojentinho.

Para quem quer usar, recomendo baixar estes dois aqui:
http://sjobic.club.fr/thinlet/index.html

F

Eu tentei fazer isso, nem queria mexer era mais pra ver como ele trabalhava mesmo, mas foi impossivel. :cry:
Até pensei que o código tava obfuscado. :lol:

Sobre o SwixML eu ja andei me aventurando, é bem legal. Um swing disfarcado de xml.

]['s

J2Alex

Qual seria a melhor alternativa… refiro-me principalmente à questão de performance…

_fs

Swing e SWT.

SWT é mais performático por usar recursos do sistema operacional. A desvantagem é que não tem todos os recursos do Swing e, até alguns bons meses atrás alguns componentes não eram renderizados corretamente no Linuxl, mas é melhor se informar se isso ainda acontece.

Swing é maravilhoso e te permite fazer o que bem entender. O que é ótimo :smiley:

F

Qual seria a melhor alternativa… refiro-me principalmente à questão de performance…

Swing + Java 5.
A nao ser que tenhas restricao de hardware. Tipo precisar rodar uma aplicacao hipermegaultrapower num pentium 233 com 64mb de ram.

]['s

danieldestro

J2Alex:
Andei dando uma olhada na API do Thinlet e tenho uma dúvida:

Em um TextField ou TextArea é possível interceptar as teclas que são digitadas? Exemplo: Permitir somente a entrada de números, ou restringir a entrada a apenas determinados tipos de valores ou ainda substituir um caracter digitado por outro - substiuir “.” por “,” por exemplo.

Grato …

O component TextField tem uns Listeners, que acho que torna o que você disse possível:

Listeners Name Description action Gives notification (invokes the given method) that there was an insert into the text or a portion of the text has been removed. insert Gives notification that there was an insert into the text (and possibly a portion has been removed too). remove Gives notification that a portion of the text has been removed. caret To track whenever the caret position has been changed. perform Invokes the given method if enter was pressed in an editable and enabled textfield.

J2Alex

O problema é mais ou menos por aí… :roll:

_fs

Bem, se um cliente precisa de uma aplicação ultramegapower, que vai abusar da renderização de imagens, com uma taxa de atualização das telas altíssima, com dezenas de janelas a o mesmo tempo … mande ele atualizar os terminais.

Mas se a aplicação vai apenas conter um punhado de formulários e alguns relatórios, esse micro é mais que o bastante.

J

Mesmo usando-se SWING???

F

Mesmo usando-se SWING???

Sim, por que nao?

Formularios, sao telas simples com uma duzia de campos normalmente um menu e uma toolbar nada mais que isso.

ps.: Eu fiz um prototipo de um sistema de Wizards (± 20 telas) rodando em um pentium 233 com 64mb e foi beleza.

]['s

I

Já que o assunto é thinlet e swing, tenho algumas dúvidas…

Quanto ao thinlet, alguém já rodou ele em JWS e pode me dizer como rodar, tentei de diversas maneiras e não consegui. Estou juntando num mesmo jar o class da minha aplicação, o thinlet.jar e o xml mas não consigo chamar corretamente no jnlp porque dá class not found.

Quanto ao swing, já vi várias vezes no fórum o pessoal dizer que monta aplicações swing no eclipse com um nullLayout acho e que depois que arruma os componentes aonde quer, muda para um outro layout e eles ficam arrumadinhos, sem essa de norte, sul, leste, oeste… alguém sabe me explicar como eu faço isso???

Valeu!!!

V

Igor_Barros:

Quanto ao swing, já vi várias vezes no fórum o pessoal dizer que monta aplicações swing no eclipse com um nullLayout acho e que depois que arruma os componentes aonde quer, muda para um outro layout e eles ficam arrumadinhos, sem essa de norte, sul, leste, oeste… alguém sabe me explicar como eu faço isso???

Valeu!!!

Do site da sun:

http://java.sun.com/docs/books/tutorial/uiswing/layout/none.html

Só que fica ligeiro que fazendo sem o layout manager pode ser que as coisas vão aparecer de modo bizarro em outro OS (isso eu ouvi falar ou li em algum lugar… Alguém por favor sabe me falar se isso é realmente verdade??? )

zica

Já ouvi o pessoal dizendo que fez no VEP do eclipse utilizando nullLayout e depois mudaram para GridBagLayout.

zica
zica:
Já ouvi o pessoal dizendo que fez no VEP do eclipse utilizando nullLayout e depois mudaram para GridBagLayout.

li no weblog do Urabatan:

[quote]O Eclipse Visual Editor tem um negócio que achei show de bola (ta, quem trabalha com o jbuilder vai dizer que não é novidade, mas achei só agora no VE), se coloca os componentes da maneira como quiser na tela (NullLayout, Grid Layout ou qualquer outra coisa) e depois muda para GridBagLayout e fica tudo perfeitinho :D[code]

R

danieldestro:
Nos meus testes Thinlet provou ser bastante leve e tem uma interface visual agradável.

Infelizmente não é possível customizar os componentes do Thinlet do mesmo modo como no Swing, mas a sua facilidade de uso pode certamente ser considerada.

Uma outra aplicação que eu fiz com Thinlet pode ser vista aqui:
http://java.danieldestro.com.br/codes/FutManager.zip

Thinlet vem sendo adotado por muitas empresas. A Summa, por exemplo, desenvolve projetos com Thinlet, usando seu framework chamado Genesis (http://genesis.dev.java.net). Tem até um hospital canadense usando Thinlet nos PDAs e sistemas internos para triagem de pacientes.

opa!

daniel, quando vc fala em customizar o que vc quer dizer exatamente?
por exemplo, se eu quiser criar um botãozinho incrementado herdando de button eu não consigo utilizá-lo com o thinlet?

valeu,
té+

danieldestro

A princípio não consegue. A idéia de Thinlet é ser simples!

R

ok, obrigado pelo esclarescimento daniel…
e obrigado tb pela resposta superhiperultramegapower rápida…

só mais uma coisa:
ainda não vi as suas matérias sobre o thinlet na javamagazine… vc fala alguma coisa sobre isso lá?
tô sem a assinatura da revista, vou pegar emprestada com um colega de aula…

valeu,
té+

danieldestro

São dois artigos complementares que falam como usar Thinlet, inclusive com a construção de uma app acessando um BD. Vale a pena ler.

_fs

DD, fungindo do escopo do tópico, você sabe de alguma maneira para eu controlar o scroll de um elemento qualquer? Há alguma extensão pra isso? Estilo scrollTo(), scrollBy() etc …

Valeu :smiley:

danieldestro

O que quer dizer com controlar o scroll?

Seria “mover o scroll” para uma determinada posição? Se for isso tem jeito sim.

Não lembro como se faz, mas tente algo como:

setInteger( find(umTextArea), position”, indiceFinal );

ou

setInteger( find(umTextArea), end”, indiceFinal );
_fs

Acertou minha intenção :thumbup:

Porém, estes métodos não foram reconhecidos para components panel nem table. Será que tem como? Google não ajudou. E na lista do Thinlet só encontrei outro cara com a mesma dúvida que eu, mas ninguém respondeu :expressionless:

danieldestro

Esse é o grande problema do Thinlet.
Algumas coisas simples não têm suporte, e as coisas que tem suporte não está documentada.
Me chamaram rpa fazr um tutorial ou documentação oficial. Mas será um trabalhão.
Pensei em fazer num esquema de How-to, tipo o do Swing.

_fs

hehe pois é :smiley:

Até lá meu chat fica com o textfield para escrever em cima e as mensagens recebidas vão sendo adicionadas por cima :expressionless:

+---------------------+--------+
|  input de mensagens | enviar |
+---------------------+--------+
|mensagem3            |usuario1|
|mensagem2            |usuario2|
|mensagem1            |usuario3|
|                     |        |
|                     |        |
|                     |        |
|                     |        |
+---------------------+--------+
Criado 10 de fevereiro de 2005
Ultima resposta 9 de mar. de 2005
Respostas 27
Participantes 11