Double double;
int integer = (int) Math.round(double);
String string = Integer.toString(integer);
System.out.println(string);
findTxtField().setText(string);
我使用上述代碼作爲示例 - 我已使用CodeNameOne編碼我的移動應用程序。變量被初始化。隱藏雙整數字符串和輸出在TxtField - CodeNameOne
運行移動應用程序並點擊執行類似代碼的按鈕(上圖)時,我收到一條錯誤消息,不幸的是,在排除故障後,我發現它是輸出到導致崩潰的文本字段。
我的移動應用程序有5個UI部分。用戶「註冊」部分將獲取數據,計算出數據,然後使用另一個UI部分「結果」中的文本字段輸出數據。
任何想法,爲什麼我有這個問題?
錯誤:
java.lang.NullPointerException
at userclasses.StateMachine.onMain_BtnInfoAction(StateMachine.java:171)
at generated.StateMachineBase.handleComponentAction(StateMachineBase.java:2251)
at com.codename1.ui.util.UIBuilder$FormListener.actionPerformed(UIBuilder.java:2831)
at com.codename1.ui.util.EventDispatcher.fireActionEvent(EventDispatcher.java:345)
at com.codename1.ui.Button.fireActionEvent(Button.java:397)
at com.codename1.ui.Button.released(Button.java:428)
at com.codename1.ui.Button.pointerReleased(Button.java:516)
at com.codename1.ui.Form.pointerReleased(Form.java:2560)
at com.codename1.ui.Form.pointerReleased(Form.java:2496)
at com.codename1.ui.Component.pointerReleased(Component.java:3108)
at com.codename1.ui.Display.handleEvent(Display.java:2017)
at com.codename1.ui.Display.edtLoopImpl(Display.java:1065)
at com.codename1.ui.Display.mainEDTLoop(Display.java:994)
at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
您沒有'double'變量的值,它的類型爲'Double',它是一個包裝類,而不是原始類。所以它被初始化爲null。 – SacJn
初始化double並使用SystemOut測試值。 Int是Double的正確四捨五入值。我只是無法在文本框中輸出。我測試了字符串,它也是正確的值。 – JSint
已解決問題。我重建了應用程序,現在它按預期運行。似乎必須存在兼容性問題。我使用8.1在筆記本電腦上構建它,並在8.0中打開它。 Netbeans有時可能會很痛苦。這顯然只是一個猜測。 – JSint