2013-03-12 1 views
-1

Я получаю странное исключение при попытке показать оповещение Dialog в форме Louuit.Отображение предупреждения с помощью сообщения с несколькими линиями внутри формы Louuit

java.lang.NullPointerException 
    at com.sun.lwuit.TextArea.shouldShowHint(+21) 
    at com.sun.lwuit.TextArea.calcPreferredSize(+4) 
    at com.sun.lwuit.Component.preferredSize(+63) 
    at com.sun.lwuit.Component.getPreferredSize(+4) 
    at com.sun.lwuit.Component.getPreferredW(+4) 
    at com.sun.lwuit.layouts.FlowLayout.layoutContainer(+139) 
    at com.sun.lwuit.Container.doLayout(+8) 
    at com.sun.lwuit.Container.layoutContainer(+16) 
    at com.sun.lwuit.Container.doLayout(+40) 
    at com.sun.lwuit.Container.layoutContainer(+16) 
    at com.sun.lwuit.Container.doLayout(+40) 
    at com.sun.lwuit.Container.layoutContainer(+16) 
    at com.sun.lwuit.Container.revalidate(+18) 
    at com.sun.lwuit.Dialog.showPacked(+107) 
    at com.sun.lwuit.Dialog.showImpl(+76) 
    at com.sun.lwuit.Dialog.show(+5) 
    at com.sun.lwuit.Dialog.showDialog(+9) 
    at com.test.MainView.ShowAlert(+82) 
    at com.test.MainView.ShowGameOverAlert(+45) 
    at com.test.MainView.<init>(+209) 
    at com.test.Main.startApp(+29) 
    at javax.microedition.midlet.MIDletProxy.startApp(+7) 

Я использовал следующие две части кода:

Dialog validDialog = new Dialog("Alert"); 
validDialog.setScrollable(false); 
validDialog.setIsScrollVisible(false); 
validDialog.setTimeout(5000); // set timeout milliseconds 
TextArea textArea = new TextArea("...."); //pass the alert text here 
textArea.setFocusable(false); 
textArea.setIsScrollVisible(false); 
validDialog.addComponent(textArea); 
validDialog.show(0, 100, 10, 10, true); 

Ref .: Alert pop up with LWUIT

и

Dialog d = new Dialog(title); 
TextArea l = new TextArea(1, 20); 
l.setText(message); 
l.setHint("no hint"); 
l.setSingleLineTextArea(false); 
l.setEditable(false); 
l.setGrowByContent(true); 

d.addComponent(l); 
d.setDialogType(Dialog.TYPE_INFO); 
d.setDialogPosition(BorderLayout.CENTER); 
d.showDialog(); 

Если кто-то может мне точку в исходный код LWUIT, он было бы очень полезно.
Я нашел один проект с именем lwuitfixes в коде Google, который не имеет функции «shouldShowHint» внутри TextArea.java и официального сайта https://lwuit-incubator.dev.java.net/ никогда не открывается !!!!!!!

+0

Инкубатор LWUIT не является официальным сайтом. Oracle переместила сайты, чтобы удалить слово dev. его lwuit.java.net. –

+0

@ShaiAlmog [lwuit.java.net] (lwuit.java.net) все еще показывает ссылку вышеупомянутой ссылки в разделе «Как внести?». Пожалуйста, поделитесь ссылкой, чтобы загрузить источник LWUIT, если он доступен вам. –

+0

Раньше существовала ссылка SVN на странице проекта LWUIT, но ребята из Oracle, похоже, полностью нарушили этот проект. Доступ к исходному коду, похоже, больше не работает. Типичный. Единственным источником является Codename One. –

ответ

0
l.setTextEditorEnabled(false); 

прекращает исключение. (получил подсказку, просмотрев файл .class jar, который я использую)

Наверное, никогда не видел худшего API, чем это.

Чтобы удалить белый фон TextArea, мне пришлось переопределить его onPaint и заполнить графику разного цвета.