2016-03-10 2 views
1

иногда я получаю это исключение при очистке и повторно добавлять элементы управления в контейнерКак остановить краску при добавлении элементов управления?

Я думаю, что это связано с окрашивать вопрос, есть ли способ, я могу прекратить рисовать события, пока не закончите добавлять элементы управления

03-10 14:00:36.435: W/System.err(13405): at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255) 
03-10 14:00:36.435: W/System.err(13405): at java.util.ArrayList.get(ArrayList.java:308) 
03-10 14:00:36.435: W/System.err(13405): at com.codename1.m.i.a(Container.java:1312) 
03-10 14:00:36.435: W/System.err(13405): at com.codename1.m.h.b(Component.java:1308) 
03-10 14:00:36.435: W/System.err(13405): at com.codename1.m.h.d(Component.java:1282) 
03-10 14:00:36.435: W/System.err(13405): at com.codename1.m.h.a(Component.java:1257) 
03-10 14:00:36.435: W/System.err(13405): at com.codename1.m.i.a(Container.java:1313) 
03-10 14:00:36.435: W/System.err(13405): at com.codename1.m.h.b(Component.java:1302) 
03-10 14:00:36.435: W/System.err(13405): at com.codename1.m.h.d(Component.java:1282) 
03-10 14:00:36.435: W/System.err(13405): at com.codename1.m.h.a(Component.java:1257) 
03-10 14:00:36.435: W/System.err(13405): at com.codename1.m.i.a(Container.java:1313) 
03-10 14:00:36.445: W/System.err(13405): at com.codename1.m.h.b(Component.java:1308) 
03-10 14:00:36.445: W/System.err(13405): at com.codename1.m.h.d(Component.java:1282) 
03-10 14:00:36.445: W/System.err(13405): at com.codename1.m.h.a(Component.java:1257) 
03-10 14:00:36.445: W/System.err(13405): at com.codename1.m.i.a(Container.java:1313) 
03-10 14:00:36.445: W/System.err(13405): at com.codename1.m.h.b(Component.java:1308) 
03-10 14:00:36.445: W/System.err(13405): at com.codename1.m.h.d(Component.java:1282) 
03-10 14:00:36.445: W/System.err(13405): at com.codename1.m.h.a(Component.java:1257) 
03-10 14:00:36.445: W/System.err(13405): at com.codename1.m.i.a(Container.java:1313) 
03-10 14:00:36.445: W/System.err(13405): at com.codename1.m.p.a(Form.java:3099) 
03-10 14:00:36.445: W/System.err(13405): at com.codename1.m.h.b(Component.java:1308) 
03-10 14:00:36.445: W/System.err(13405): at com.codename1.m.p.b(Form.java:3109) 
03-10 14:00:36.445: W/System.err(13405): at com.codename1.m.h.d(Component.java:1282) 
03-10 14:00:36.445: W/System.err(13405): at com.codename1.m.h.a(Component.java:1257) 
03-10 14:00:36.445: W/System.err(13405): at com.codename1.m.h.d(Component.java:1225) 
03-10 14:00:36.455: W/System.err(13405): at com.codename1.m.h.c(Component.java:1510) 
03-10 14:00:36.455: W/System.err(13405): at com.codename1.m.h.i(Component.java:1457) 
03-10 14:00:36.455: W/System.err(13405): at com.codename1.impl.a.p(CodenameOneImplementation.java:516) 
03-10 14:00:36.455: W/System.err(13405): at com.codename1.m.l.j(Display.java:1071) 
03-10 14:00:36.455: W/System.err(13405): at com.codename1.m.l.i(Display.java:993) 
03-10 14:00:36.455: W/System.err(13405): at com.codename1.m.ab.run(RunnableWrapper.java:120) 
03-10 14:00:36.455: W/System.err(13405): at com.codename1.impl.b$1.run(CodenameOneThread.java:60) 
03-10 14:00:36.455: W/System.err(13405): at java.lang.Thread.run(Thread.java:841) 

ответ

1

Вы никогда не должны изменять пользовательский интерфейс в потоке, который не является потоком отправки событий (EDT).

Краска происходит на EDT, а также все другие события, поэтому остановка не является проблемой. В этом случае нет необходимости синхронизировать или делать что-либо более сложное.

Вы можете использовать инструмент обнаружения нарушения EDT, чтобы найти ошибки в коде. См.: https://www.codenameone.com/manual/edt.html

Смежные вопросы

 Смежные вопросы