문제

추가하려고 할 때 문제가 있습니다 PApplet SWT로, 그것은 단지 렌더링해야 할 때 빈 창을 나타냅니다. PApplet. 즉 PApplet 스스로 작동하지만 SWT 창에서는 작동하지 않습니다.

나는 단지 추가한다고 생각했다 PApplet 프레임 안으로 초기에 Eclipse의 SWT 튜토리얼 코드를 사용하여 트릭을 수행해야합니다. 분명히 그렇게 쉽지 않았습니다. 여기 내 코드가 어디에 있습니다 MyPApplet 사용자 정의입니다 PApplet:

public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    Composite composite = new Composite(shell, SWT.EMBEDDED | SWT.NO_BACKGROUND);
    Frame frame = SWT_AWT.new_Frame(composite);
    PApplet pApplet = new MyPApplet();
    frame.add(pApplet);
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) display.sleep();
    }
    display.dispose();
}

내가 뭔가를 놓치고 있습니까?

도움이 되었습니까?

해결책

Eclipse에서 SWT로 처리하는 방법에 대한 작은 가이드를 만들었습니다.http://christian.liljedahl.dk/guides/processing-and-swt-in-eclipse

나는 이것이 당신을 위해 그것을 해결하기를 바랍니다.

내 "트릭"은 처리 물건을위한 하나의 창과 자체 스레드에 UI가있는 별도의 창을 갖는 것입니다.

다른 팁

나는 당신이 놓친 모든 것이 papplet.init ()라고 생각합니다. 수업의 문서를 참조하십시오. http://dev.processing.org/reference/core/javadoc/processing/core/papplet.html

나는 그것을 달성하는 다른 방법이 있다고 생각합니다. 스윙 구성 요소를 어댑터로 사용하는 것은 다음과 같습니다. Papplet을 JinternalFrame과 같은 jcomponent에 추가 한 다음이 jcomponent를 SWT 컴포지트에 포함시킵니다.

나는 그것에 대해 몇 가지 연습을했는데 잘 작동합니다 ..

또한이 주제에 대한 요약을 블로그로 작성했습니다.http://blog.csdn.net/godoorsun/article/details/6747589

(BTW,이 기사는 중국어로 작성되었습니다.

참고 : 이것은 처리와 함께 작동합니다 2.2.11 그리고 3+2

OPS 코드에는 두 가지 누락 된 진술이 있습니다.

  • 처럼 사용자 176840 말하면, 전화가 필요합니다 pApplet.init() 쉘을 열기 전에
  • 또한 a를 설정합니다 Layout 껍질처럼 FillLayout, GridLayout, 등 shell.setLayout(new FillLayout())

기본 작업 코드 :

public static void main(String[] args) {
    Display display = new Display();
    Shell shell = new Shell(display);
    shell.setLayout(new FillLayout());
    Composite composite = new Composite(shell, SWT.EMBEDDED | SWT.NO_BACKGROUND);
    Frame frame = SWT_AWT.new_Frame(composite);
    PApplet pApplet = new MyPApplet();
    frame.add(pApplet);
    pApplet.init();
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) display.sleep();
    }
    display.dispose();
}

1 제 경우에는 Maven 기반 SWT 프로젝트에 애플릿을 포함 시키려고 했으므로 2.x 시리즈에서 사용 가능한 마지막 (및 유일한) 프로세싱 버전 만 사용할 수 있습니다. pom.xml:

    <dependency>
        <groupId>org.processing</groupId>
        <artifactId>core</artifactId>
        <version>2.2.1</version>
    </dependency>

2 3 처리가 호환되지 않는 이유를 찾을 수 있습니다. 여기 그리고 여기, 기본적으로 코드의 주요 구조 조정. 처리 캔버스를 SWT 응용 프로그램에 실패했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top