2012-07-16 4 views
1

나는 자바 스윙에서 GUI를 만들었지 만, 그 GUI의 기능을위한 많은 파이썬 스크립트를 만들었다. 어쨌든 파이썬 스크립트를 사용하여 자바 스윙 GUI 인터페이스의 내용을 표시 할 수있다. ? 감사!Java GUI에서 파이썬 사용하기

답변

3

체크 아웃 자이 썬 (http://www.jython.org/)

그것은 자바에서 파이썬 구현입니다.

이론적으로 파이썬 코드를 변경하지 않아야합니다 ("좋은 품질"이라면).하지만 실제로는 여기저기서 약간의 수정을해야한다고 제안합니다. 나는 개인적으로 자이 썬을 사용하지 않지만, 모든 다양한 파이썬 구현은 일반적으로 더 많이 호환되거나 유사하지는 않지만 동일하지는 않습니다. C ABI에 의존하는 파이썬 라이브러리는 사용할 수 없지만 순수한 파이썬 스크립트가 작동해야합니다.

+0

모든 스크립트를 변환해야합니까? – enginefree

+0

@ user1510602 자바에서 파이썬 구현입니다. 문서화 된 차이점을 확인하십시오. – Marcin

+0

@ user1510602 : 수정 된 응답으로 응답 됨. :) – Arafangion

0

최종 버전의 앱에서는이 작업을 원하지 않을 수도 있지만 빠르고 더러운 방법으로 외부 프로그램을 java에서 실행하고 출력을 캡처 할 수 있습니다. (전에 파이썬에서 자바로 프로그램을 이식하는 과정에 있었을 때, 그리고 CPython 모듈을 대체 할 필요없이 자바 백엔드가 끝나기 전에 자바 프론트 엔드가 제대로 작동 하는지를보고 싶었습니다.)이 예제 프로그램 다시, 나는 임시 테스트 목적으로 사용할 것,

import java.io.*; 

class Jexec{ 
    public void Jexec(){} 

    private String exec(String execStr){ 
    try{ 
     // run process and capture stdout 
     Process p = Runtime.getRuntime().exec(execStr); 
     InputStream s = p.getInputStream(); 

     // convert stdout to a string 
     BufferedReader br = new BufferedReader(new InputStreamReader(s)); 
     StringBuffer sb = new StringBuffer(); 
     String line; 
     while ((line = br.readLine()) != null) { 
     sb.append(line).append("\n"); 
     } 
     String output = sb.toString(); 

     p.destroy(); 
     return output.toString(); 

    }catch(Exception e){ 
     //actually handle the error here 
     e.printStackTrace(); 
     return String.format("*** Running \"%s\" failed. ***",execStr); 
    } 
    } 

    public static void main(String[] args){ 
    Jexec je = new Jexec(); 
    System.out.println(je.exec("python test.py")); //in your case, you would use the output instead of just printing it 
    } 
} 

이 슈퍼 누덕 누덕 기운, 그래서 : 파이썬 프로그램 test.py을 실행하고 출력을 인쇄합니다. 그러나 그러한 경우에는 정말 도움이됩니다.

+0

더 나은 솔루션 인 jymatisse, 스윙 GUI 빌더가 있지만 파이썬에서 지원 코드를 가질 수 있습니다. http://javaforge.com/project/11 – enginefree

관련 문제