Ich habe verschiedene Klassen für verschiedene Arten von Programm-Genres (Comedy, Drama usw.).Problem mit dem Befüllen von JTable und JTextFields
Ich habe eine Textdatei mit '-' getrennten Werten gefüllt, die von einer Klasse namens Processing gelesen und in eine LinkedList eingefügt werden.
Ich habe eine andere Klasse GUI_g, die die GUI erstellt. Es hat 2 JTables. Eins für die Liste und 1 für den Kanal. Die JTable listTable wird aus der verknüpften Liste gefüllt, und wenn ein Benutzer auf eine Zeile klickt, ändert sich der Text der Textfelder entsprechend.
Ich versuchte mit 5 Feldern (Titel, Genre und Dauer, Schauspieler, Direktor) und es funktionierte, mit den 3 textfields, die unterschiedlichen Text zeigen, entsprechend welcher Reihe geklickt wird. Wenn ich jedoch alle erforderlichen Werte hinzugefügt habe, wird ein Fehler angezeigt und keine Felder ausgefüllt.
Ich habe zwei Probleme:
Wenn es ein Musikvideo ist die Zellen nicht gefüllt sind jedoch (wie es sein sollte) es einen Fehler zurückgibt, wenn das Kopieren von Daten auf die JTextFields Die Snyopsis Spalte bleibt leer und ist nicht gefüllt . Unten sind die Klassen (die hauptsächlich verwendet). Wenn du andere brauchst, sag es mir und ich lade es hoch.
GUI_g: http://pastebin.com/KsZBwgtR ProgramTableModel: http://pastebin.com/6Rc2bVxa Verarbeitung: http://pastebin.com/8f8iteVK Programm: http://pastebin.com/NU3XGvM8
Dies ist der Fehler, den ich bekommen:
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)
Bildbeispiel:
Können Sie mir bitte erklären, mit was genau ich 'T' ersetzen soll? Ich habe nicht ganz verstanden – Brian
@Brian: Die toString() - Methode ist eine java.lang.Object-Methode, so dass es zu jedem Objekt gehören kann. Ich habe nicht den Code durchsucht, um die Methode zu finden, auf die sich listTable.getValueAt (...) bezieht, sondern das Objekt, das Sie von dieser Methode zurückgeben - Sie müssen T nur auf diesen Typ setzen (T steht für Typ, übrigens). – Ozzy
ahh ok danke. auch .. warum ist das Synopsisfeld nicht für jedes Objekt da? – Brian