Utilizando as bibliotecas do Java usando o Jython
Neste tutorial iremos aprender como implementar um HttpServlets utilizando o Jython (Python) dentro de um container do Tomcat. Também aprenderemos como utilizar as bibliotecas nativas do Java dentro do Jython, trabalhando seus atributos, utilizando exemplos explicativos.
Parte 3: Uso de javax.swing
Podemos trabalhar outras bibliotecas do Java. Vamos ver um exemplo de uso da biblioteca javax.swing, que tem sua documentação no endereço:
Vamos iniciar o uso do Jython. Digite "jython" em sua console (prompt no Windows). Você deverá ver algo semelhante ao abaixo:
Jython 2.1 on java1.5.0 (JIT: null)
Type "copyright", "credits" or "license" for more information.
>>>
Esse porém é o modo interativo do Jython, onde se tem a resposta do comando on-the-fly. Porém em alguns casos esse tipo de interação pode atrapalhar. Podemos colocar os códigos dentro de arquivos textos comuns com a extensão .py. Para executarmos o comando fazermos em sua console(prompt no Windows) o comando:
$ jython nomedoarquivo.py
Esse procedimento inicia o seu programa em Jython. Vamos agora fazer um pequeno programa utilizando as bibliotecas do javax.swing. Crie um arquivo chamado soma.py. Dentro desse arquivo digite o seguinte código:
Vamos iniciar o uso do Jython. Digite "jython" em sua console (prompt no Windows). Você deverá ver algo semelhante ao abaixo:
Jython 2.1 on java1.5.0 (JIT: null)
Type "copyright", "credits" or "license" for more information.
>>>
Esse porém é o modo interativo do Jython, onde se tem a resposta do comando on-the-fly. Porém em alguns casos esse tipo de interação pode atrapalhar. Podemos colocar os códigos dentro de arquivos textos comuns com a extensão .py. Para executarmos o comando fazermos em sua console(prompt no Windows) o comando:
$ jython nomedoarquivo.py
Esse procedimento inicia o seu programa em Jython. Vamos agora fazer um pequeno programa utilizando as bibliotecas do javax.swing. Crie um arquivo chamado soma.py. Dentro desse arquivo digite o seguinte código:
import javax.swing as libswing
pnumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ")
snumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ")
soma = int(pnumero) + int(snumero)
libswing.JOptionPane.showMessageDialog(None, "A soma eh %d " % soma)
pnumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ")
snumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ")
soma = int(pnumero) + int(snumero)
libswing.JOptionPane.showMessageDialog(None, "A soma eh %d " % soma)
Salve o código acima e rode:
$ jython soma.py
O resultado seria:
Este é um pequeno exemplo de como podemos trabalhar as bibliotecas gráficas do swing dentro do Jython utilizando o Python. Vamos entender o código:
- import javax.swing as libswing
Importa as bibliotecas do swing.
- pnumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ")
snumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ")
Define as variáveis, chamando a função JoptionPane.showInputDialog("mensagem") da biblioteca swing e armazenando a resposta do utilizador.
- soma = int(pnumero) + int(snumero)
Soma o valor das duas variáveis. O int(pnumero) e o int(snumero) é utilizado para converter o valor da variável em inteiro para realizarmos a soma. Por padrão o valor armazenado fica no formato String, e se não fosse feita a conversão teríamos o seguinte resultado:
O valor da soma seria a concatenação dos dois valores e não a soma em si. Por isso a importância da conversão.
- libswing.JOptionPane.showMessageDialog(None, "A soma eh %d " % soma)
Este trecho do código mostra na tela através do componente JOptionPane.showMessageDialog(None, "mensagem") o valor da variável soma. Como podem ver, o código é simples de se entender e muito simples.
Mas, eu queria dizer que ao rodar script/exemplo soma.py foi exibido os seguintes erros:
Execução no Shell:
File "C:\jython2.2.1\Curso\soma.py", line 2
SyntaxError: Non-ASCII character '\xfa' in file C:\jython2.2.1\Curso\soma.py on
line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html f
or details
Execução via IDLE:
Traceback (most recent call last):
File "C:\jython2.2.1\Curso\soma.py", line 1, in <module>
import javax.swing as libswing
ImportError: No module named javax.swing
Execução via DOS:
File "C:\jython2.2.1\Curso\soma.py", line 2
SyntaxError: Non-ASCII character '\xfa' in file C:\jython2.2.1\Curso\soma.py on
line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html f
or details
Gostaria de saber o que pode ter acontecido, seria algo relacionado à configuração do Jython?Aguardo retorno.
PS: O jsdk e o jython estão devidamente instalados e rodando perfeiramente.