Java 自定义渲染器上的JTable阻塞
我在Java 自定义渲染器上的JTable阻塞,java,jtable,Java,Jtable,我在JTable中有一个自定义渲染器。当我的JTable显示时,我在JTable.prepareRenderer()上得到一个NullPointerException。我不确定自定义渲染器的哪个部分是不可准备的,但我确定这是我的错 我的渲染器的压缩版本(完整版本位于): 添加渲染器的代码(完整版本): 是否有任何关于我哪里出错的指针?NPE消息将向您提供导致错误的语句。这就是开始寻找的地方。一旦知道哪个变量为空,就可以开始解决这个问题。我们无法帮助您,因为我们不知道错误发生在哪里 我唯一能建议的
JTable
中有一个自定义渲染器。当我的JTable
显示时,我在JTable.prepareRenderer()上得到一个NullPointerException
。我不确定自定义渲染器的哪个部分是不可准备的,但我确定这是我的错
我的渲染器的压缩版本(完整版本位于):
添加渲染器的代码(完整版本):
是否有任何关于我哪里出错的指针?NPE消息将向您提供导致错误的语句。这就是开始寻找的地方。一旦知道哪个变量为空,就可以开始解决这个问题。我们无法帮助您,因为我们不知道错误发生在哪里
我唯一能建议的是,您不应该使用“returnnull”来返回null渲染器。您可以将文本设置为“”或类似的值,然后返回渲染器
如果您需要更多帮助,请发布您的说明。我同意camickr的观点,NPE会告诉您什么是空的,这样应该会给您一个线索
但是看看你的代码,我想
if (grade == null) return null;
返回null是触发NullPointerException的一个好方法结果是我在模型中的一些数据是null
。就这样。d'oh!我当然不应该返回null!我怎么没想到呢?另外,我认为这个SSCCE不是很短或是自包含的,尽管部分问题是我不知道错误发生在哪里。但实际上,这并不能解决我的问题。我知道你不知道错误发生在哪里,这就是为什么你要创建一个SSCCE。你可以从简单有效的事情开始。然后添加自定义渲染器。如果它工作得很好,如果没有,那么你就知道问题出在哪里了。SSCCE的想法是隔离问题,如果您无法找出导致问题的原因,我们可以提供帮助。根据提供的代码,我们无法开始猜测错误。让它正常工作,然后重新添加功能,直到它崩溃?太棒了,哇。我甚至可以在不添加自定义渲染器的情况下获得NPE。非常感谢。但是返回新的JLabel()并不能解决这个问题。事实证明这(可能)不是我的错,因为没有设置默认渲染器仍然会导致NPE。您仍然没有发布SSCCE,简单的案例无法支持上述语句。也许问题在于你表中的数据,但我敢打赌问题是你的错。
model = new GradeEntryModel();
table = new JTable(model);
// some work with table
table.setDefaultRenderer(Grade.class, new GradeRenderer(true));
if (grade == null) return null;