gpt4 book ai didi

java - 填充 JTable 和 JTextFields 时出现问题

转载 作者:行者123 更新时间:2023-12-01 15:25:50 26 4
gpt4 key购买 nike

我有代表不同类型节目类型(喜剧、戏剧等)的各种类(class)。

我有一个文本文件,其中填充了“-”分隔值,这些值由一个名为“Processing”的类读取,并将它们放入 LinkedList 中。

我有另一个类 GUI_g 来创建 GUI。它有 2 个 JTable。 1 个用于列表,1 个用于 channel 。 JTable listTable 从链接列表中填充,每当用户单击一行时,文本字段的文本都会相应更改。

我尝试了 5 个字段(标题、类型和持续时间、 Actor 、导演),结果成功了,3 个文本字段根据单击的行显示不同的文本。但是,当我添加所有需要的值时,出现错误并且没有填充任何字段。

我有两个问题:

如果它是一个 MusicVideo,则单元格不会被填充(应该是这样),但是在将数据复制到 JTextFields 时它会返回错误Synopsis 列保持为空且未填充。下面是类(主要使用的类)。如果您需要其他内容,请告诉我,我会上传。

GUI_g:http://pastebin.com/KsZBwgtR程序表模型: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)

图像示例:

enter image description here

最佳答案

问题出在 GUI_g 类中的第 205 行(如编译器所述)。

String actor = listTable.getValueAt(row, column+3).toString();

在尝试使用 toString() 方法之前,您没有检查或清理输入值。

当然,您不能对 null 值使用方法。

您需要检查所有输入(不仅仅是这一输入)。由于您有很多字段,因此您应该创建一个辅助方法/类来为您执行此操作并返回干净的输入。

如果您只是想快速解决这个问题,请执行以下操作:

String actor = " ";
T input = listTable.getValueAt(row, column+3);
if (input != null) actor = input.toString();
return actor;

将“T”替换为您要检查的任何对象。

关于java - 填充 JTable 和 JTextFields 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10156566/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com