Vamos criar uma aplicação que acessa a biblioteca swing do Java. Este programa soma dois números inteiros.
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)
Salve o código acima e rode:
$ jython soma.py
(contando que o jython esteja no PATH de sua máquina ou o soma.py esteja dentro do diretório do Jython)
Explicando o código:
import javax.swing as libswing
Importa a biblioteca do Java.
pnumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ")
Mostra a primeira caixa de diálogo e armazena o valor na variável pnumero.
snumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ")
Mostra a segunda caixa de diálogo e armazena o valor na variável snumero.
soma = int(pnumero) + int(snumero)
Converte os valores de pnumero e snumero para inteiros e soma os dois armazenando o resultado na variável soma.
libswing.JOptionPane.showMessageDialog(None, "A soma eh %d " % soma)
[3] Comentário enviado por jose_maria em 28/09/2004 - 23:10h
Cara que legal!
Eu vou testar isso! Eu estava realmente procurando conhecer mais sobre Python. Usar Python com swing é bem legal porque a api swing é muito flexível e muito boa de trabalhar.
Parabéns!
[5] Comentário enviado por Czuber em 29/09/2004 - 10:48h
Gostei da novidade! Mas eu tenho uma dúvida: e quanto ao desempenho? Vc sabe como ele funciona? Quando é compilado gera .class do java e o Jython serve só como uma "interface" nova para a sintaxe ou ele cria um .class diferente do que seria escrito somente em Java?
[9] Comentário enviado por jchaves13 em 30/09/2004 - 14:52h
Com
java -cp . jython-21
e
java -classpath . jython-21
Funcionou, após isso copiei o jython-21.class para o local apontado por CLASSPATH, e roda direto, provavelmente poderei apagar após instalar, farei alguns testes.
O jview não existe no meu sistema :(.
Muito obrigado, parabéns.
[11] Comentário enviado por rickobranco em 15/02/2006 - 16:24h
Gostei muito do jython.
Você não teria um apostila ou um tutorial mais completo de jython, pois se tiver adoraria dar uma olhada pois estou realmente interessado na linguagem.
Obrigado!!!
[13] Comentário enviado por leandro_hamid em 19/10/2007 - 23:47h
Gostei muito do artigo, achei muito interesante já que estou me iniciando em python e tenho um certo conhecimento de Java mas eu tive um probleminha com a instrução import, quando executei o arquivo soma.py foi exibida a seguinte mensagem de erro:
import javax.swing as libswing
ImportError: No module named javax.swing
[14] Comentário enviado por enki em 06/12/2009 - 12:42h
Simples e flexível, gostei, embora não gostar muito de java. Fabio vc tá de parabéns kra, muito legal a iniciativa, tinha ouvido falar antes por um professor meu sobre o Jython, mas nunca tinha testado. Mas eu creio que no quesito desempenho Jython não seja uma boa pedida, pelo fato de embarcar uma linguagem interpretada em outra. Me corrijam se eu estiver errado.
Abraços.
[15] Comentário enviado por nukelinux em 10/01/2010 - 08:51h
muito bom artigo
tenho uma dúvida:
se eu faço dessa forma, o código roda:
jython testejython.py
tentei compilar com o jythonc
jythonc testejython.py
ele criou uma pasta com o arquivo .java e o .class do codigo...
não sei se isso foi ignorância minha, mas tentei compilar esse .java
e consegui um erro...rs
tentei rodar o .class como java nativo
java testejython
e ele me deu esse erro:
debian:/home/leandro/jpywork# java testejython
Exception in thread "main" java.lang.NoClassDefFoundError: org/python/core/PyObject
Caused by: java.lang.ClassNotFoundException: org.python.core.PyObject
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: testejython. Program will exit.
quando comecei a aprender jython (ha pouco tempo), achei que poderia simplesmente gerar o .class e usar no pc, necessitando apenas da jvm para rodar, mas pelo visto vou precisar do python e do jython tbm???
pretendo desenvolver meu TCC em jython, por isso a minha dúvida. Afinal, vou ter que instalar python, jython e java na maquina do cliente pro código poder funcionar? ou existe uma maneira mais simples?