문제
추가하려고 할 때 문제가 있습니다 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.1
1 그리고 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 응용 프로그램에 실패했습니다.