[問題] 我的程式出現這樣的錯誤訊息@@

看板java作者 (和風散月)時間16年前 (2009/04/19 15:31), 編輯推噓6(605)
留言11則, 7人參與, 最新討論串1/1
程式的目的是為了把文字檔裡的東西讀出來放進label裡,文字檔裡就一行純文字 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at GUI.jButtonRankActionPerformed(GUI.java:624) at GUI.access$1000(GUI.java:16) at GUI$11.actionPerformed(GUI.java:532) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6041) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5806) at java.awt.Container.processEvent(Container.java:2058) at java.awt.Component.dispatchEventImpl(Component.java:4413) at java.awt.Container.dispatchEventImpl(Container.java:2116) at java.awt.Component.dispatchEvent(Component.java:4243) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916) at java.awt.Container.dispatchEventImpl(Container.java:2102) at java.awt.Window.dispatchEventImpl(Window.java:2440) at java.awt.Component.dispatchEvent(Component.java:4243) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) at java.awt.EventDispatchThread.run(EventDispatchThread.java:121) 這是出錯的main class的code部份 private void jButtonRankActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: this.setVisible(false); jFrameRank.setSize(380, 380); jFrameRank.setVisible(true); no_1.setText(record.getRank(1)); score_no_1.setText(record.getRankScore(1)); no_2.setText(record.getRank(2)); score_no_2.setText(record.getRankScore(2)); no_3.setText(record.getRank(3)); score_no_3.setText(record.getRankScore(3)); no_4.setText(record.getRank(4)); score_no_4.setText(record.getRankScore(4)); no_5.setText(record.getRank(5)); score_no_5.setText(record.getRankScore(5)); } no_1~no_5是Label,record是rank類別的物件 後面的record.getRank()的code如下(定義在Rank class內) public String getRank(int num){ if(num == 1) filename = "no_1"; else if(num == 2) filename = "no_2"; else if(num == 3) filename = "no_3"; else if(num == 4) filename = "no_4"; else if(num == 5) filename = "no_5"; try { //開檔,讀取文字 FileReader fis = new FileReader("text\\" + filename + ".txt"); text = ""; for(int c = fis.read(); c != -1; c = fis.read()){ text += (char)c; } //關檔 fis.close(); this.rank = text; System.out.println(text); //回傳文字 return rank; } catch (FileNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } return ""; } 使用的IDE是netbeans 6.5.1 不知道是我觀念有錯還是怎樣@ @a,de了挺久的bug,但顯示出來一直是空白的 如果有人知道是怎麼一回事的話,請不吝指教 本版首PO,請鞭小力一點> < 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.113.10.125 ※ 編輯: jerrychai25 來自: 59.113.10.125 (04/19 15:36)

04/19 15:44, , 1F
GUI.jButtonRankActionPerformed(GUI.java:624) -> 看看第
04/19 15:44, 1F

04/19 15:47, , 2F
624 行哪個變數沒初始值是 null 的。 不等推文紅綠燈了
04/19 15:47, 2F

04/19 15:49, , 3F
哦哦@@
04/19 15:49, 3F

04/19 15:59, , 4F
可是我每個變數都有初始值啦0.0
04/19 15:59, 4F

04/19 16:32, , 5F
NullPointerException有時候你給的index比陣列還大也會出現
04/19 16:32, 5F

04/19 17:21, , 6F
最討厭看到NullPointerException = =
04/19 17:21, 6F

04/19 17:23, , 7F
可是我沒用陣列啊=口=,我在想該不會是我的reader寫錯
04/19 17:23, 7F

04/19 17:26, , 8F
你是純用眼睛debug 還是加用 ide 的 debug mode @@?
04/19 17:26, 8F

04/19 19:29, , 9F
null pointer 很單純就是自己沒有處理好...是自己要檢討
04/19 19:29, 9F

04/19 20:25, , 10F
我什麼code都沒改..........離開一個小時回來可以動了
04/19 20:25, 10F

04/20 02:10, , 11F
通常錯誤就看第一行,有時候改第一行可以少很多錯誤訊息
04/20 02:10, 11F
文章代碼(AID): #19wjDHPq (java)