我有表示各種類型節目體裁(喜劇,戲劇等)的各種類。麻煩與填充的JTable和JTextField的
我充滿了一個文本文件「 - 」分隔的數值是那些獲得一類稱爲處理讀取,並將它們放入一個LinkedList。
我有另一個類GUI_g創建圖形用戶界面。它有2個JTable。一個用於列表,另一個用於頻道。 JTable listTable從鏈接列表中填充,每當用戶單擊一行時,文本字段的文本就會相應地改變。
我試着用5個字段(標題,流派和持續時間,演員,導演)和它的工作,用3個文本框顯示根據點擊哪一行不同的文本。但是,當我添加所有需要的值時,出現錯誤,沒有填充字段。
我有兩個問題:
如果它是一個音樂電影的電池沒有充滿了(因爲它應該是),但它的數據複製到JTextField的 的Snyopsis欄保持空白,不填充時返回錯誤。 下面是類(主要使用的)。如果你需要別人告訴我,我會上傳。
GUI_g:http://pastebin.com/KsZBwgtR ProgramTableModel:http://pastebin.com/6Rc2bVxa 處理:http://pastebin.com/8f8iteVK 計劃:http://pastebin.com/NU3XGvM8
這是錯誤我得到:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at GUI_g$1.mouseClicked(GUI_g.java:205)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
at java.awt.Component.processMouseEvent(Component.java:6507)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
形象的例子:
你能否解釋一下我應該用什麼來代替'T'?我不太明白 – Brian 2012-04-14 20:44:56
@Brian:toString()方法是一個java.lang.Object方法,因此它可以屬於任何對象。我沒有打擾通過你的代碼來找到listTable.getValueAt(...)引用的方法,但是無論你從那個方法返回哪個對象 - 你只需要將T設置爲該類型(T代表類型, BTW)。 – Ozzy 2012-04-14 20:51:06
啊好吧謝謝。也..爲什麼不是每個對象的概要場? – Brian 2012-04-14 20:55:55