domingo, 1 de maio de 2011

Usando a classe Swing do Java no Jython - Parte 2

Como prometido, vamos comparar blocos de cada um dos códigos mostrados no post "Usando a classe Swing do Java no Jython - Parte 1".



Perceba que no Jython não é necessário importar ActionEvent ou ActionListener, pois a dinâmica de digitação do Jython nos permite evitar mencionar essas classes em nosso código.

Os próximos códigos são os que criam um JFrame e seta algumas propriedades.



Em Java, um novo JFrame é criado e então as propriedades defaultCloseOperation e size pode ser setadas. Em Jython, podemos setar essas mesmas propriedades assim que chamamos o construtor.

Quando voce seta as propriedades dentro do construtor é necessário ter um certo cuidado com relação a ordem das chamadas. Geralmente, isso não é um problema, pois essas chamadas não são dependentes da ordem em que se encontram. A grande exceção é setVisible(): você provavelmente deve ter setado a propriedade de visibilidade fora do construtor depois de todas as outras para evitar qualquer possíveis problemas.

Voltando ao nosso exemplo, o próximo bloco de código cria um JButton e faz com que, ao ocorrer o evento, ele imprima "Click Me!"



Em Jython, nós podemos passar uma classe "change_text" diretamente para o construtor do JButton. Isso é mais prático do que o "addActionListener" do Java, em que se deve criar uma classe anônima ActionListener e definir o seu método actionPerformed com toda a cerimônia necessária para as declarações do tipo static. Isso funciona porque o Jython reconhece eventos em código Java se eles possuem métodos addEvent()* e *removeEvent() correspondentes. O Jython pega o nome do evento e o torna acessível usando a sintaxe do Python, desde que os métodos dos eventos sejam public.

Acredito que agora você já terá uma boa noção de como utilizar as classes do Java no Jython. Caso deseje saber um pouco mais sobre esse assunto, não deixe de ler o texto do qual retirei todas essas informações: Jython Book v1.0 - Chapter 16: GUI Applications. Abraço! =)

0 comentários:

Postar um comentário

Related Posts Plugin for WordPress, Blogger...