看板 java 關於我們 聯絡資訊
程式的目的是為了把文字檔裡的東西讀出來放進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)
jtmh:GUI.jButtonRankActionPerformed(GUI.java:624) -> 看看第 04/19 15:44
jtmh:624 行哪個變數沒初始值是 null 的。 不等推文紅綠燈了 04/19 15:47
jerrychai25:哦哦@@ 04/19 15:49
jerrychai25:可是我每個變數都有初始值啦0.0 04/19 15:59
yuekun:NullPointerException有時候你給的index比陣列還大也會出現 04/19 16:32
Goodwater:最討厭看到NullPointerException = = 04/19 17:21
jerrychai25:可是我沒用陣列啊=口=,我在想該不會是我的reader寫錯 04/19 17:23
qrtt1:你是純用眼睛debug 還是加用 ide 的 debug mode @@? 04/19 17:26
TonyQ:null pointer 很單純就是自己沒有處理好...是自己要檢討 04/19 19:29
jerrychai25:我什麼code都沒改..........離開一個小時回來可以動了 04/19 20:25
szss8765:通常錯誤就看第一行,有時候改第一行可以少很多錯誤訊息 04/20 02:10