2009-09-27 3 views
0

У меня возникли проблемы при попытке добавить PApplet в SWT, оно появляется в пустое окно, когда оно должно просто отображать PApplet. То есть PApplet работает сам по себе, но не в SWT-окне.Как добавить обработку PApplet в SWT

Я думал, что просто добавить PApplet в фрейм должен изначально сделать трюк, используя код учебника SWT в Eclipse. Видимо, это было не так просто. Вот мой код, где 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(); 
} 

ли я что-то отсутствует?

+0

назовите меня идиотом ... что такое PApplet? – andyczerwonka

+0

@arcticpenguin: PApplet - это класс, который обрабатывает. использует в качестве окна/апплета фрейм. Он подклассифицирует класс Applet класса java. – Spoike

+0

@Spoike Вы когда-нибудь нашли решение для этого? – RoflcoptrException

ответ

3

Я сделал это небольшое руководство о том, чтобы сплавить Обработка с SWT в Eclipse: http://christian.liljedahl.dk/guides/processing-and-swt-in-eclipse

Я надеюсь, что это решает для Вас.

Мой «трюк» должен иметь одно окно для обработки материала и отдельное окно с пользовательским интерфейсом в своем собственном потоке.

1

Я думаю, что есть альтернативный способ достижения этого. Использование Swing Component в качестве адаптера, которому нравится: добавить PApplet в JComponent, например JInternalFrame, а затем вставить этот JComponent в состав SWT Composite.

Я сделал некоторые практики в том, что и она отлично работает ..

, а также я уже писал некоторые резюме по этой теме: http://blog.csdn.net/godoorsun/article/details/6747589

(кстати, эта статья написана на китайском языке :(, может быть, вы можете прочитать его через Google Translator, но примерный код на этой статье прост для понимания)