初始化程序错误中的exception

我正在使用Netbeans。 我做了一些绑定的事情,现在每当我开始我的程序,甚至在初始化表单之前,它都会给我一个错误

线程main中的exception在表单甚至是初始化对象之前就已经发生了。 表格甚至不是一个对象。 我的main()中的每一行都会导致一个exception。 随机的东西。 我根本不理解它。

这是错误。

Exception in thread "main" java.lang.ExceptionInInitializerError at obd2ner.main(obd2ner.java:26) Caused by: java.lang.ClassCastException at java.lang.Class.cast(Class.java:2990) at org.jdesktop.beansbinding.Binding.convertForward(Binding.java:1312) at org.jdesktop.beansbinding.Binding.getSourceValueForTarget(Binding.java:844) at org.jdesktop.beansbinding.Binding.refreshUnmanaged(Binding.java:1222) at org.jdesktop.beansbinding.Binding.refresh(Binding.java:1207) at org.jdesktop.beansbinding.AutoBinding.tryRefreshThenSave(AutoBinding.java:162) at org.jdesktop.beansbinding.AutoBinding.bindImpl(AutoBinding.java:199) at org.jdesktop.beansbinding.Binding.bindUnmanaged(Binding.java:959) at org.jdesktop.beansbinding.Binding.bind(Binding.java:944) at org.jdesktop.beansbinding.BindingGroup.bind(BindingGroup.java:143) at OBD2nerForm.initComponents(OBD2nerForm.java:731) at OBD2nerForm.<init>(OBD2nerForm.java:75) at Status.<clinit>(Status.java:41) ... 1 more Java Result: 1 

OBD2nerForm第731行是bindingGroup.bind(); 有时候在pack()上出错。

在“main”中的例外似乎并不相关,因为一旦程序运行就会发生这种情况,每当我注释掉一行时,它就跳转到下一个

  public void actionPerformed(ActionEvent evt) { jFormattedTextField2ActionPerformed(evt); } }); jLabel8.setText("Data In Que:"); jLabel9.setFont(new Font("DejaVu Sans", 0, 14)); jLabel9.setText("FFFFFFFFFFFFFFFFFFFF"); GroupLayout jPanel5Layout = new GroupLayout(jPanel5); jPanel5.setLayout(jPanel5Layout); jPanel5Layout.setHorizontalGroup( jPanel5Layout.createParallelGroup(GroupLayout.LEADING) .add(jPanel5Layout.createSequentialGroup() .add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING) .add(jPanel5Layout.createSequentialGroup() .add(19, 19, 19) .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING) .add(jLabel7) .add(jLabel5) .add(jLabel6)) .add(18, 18, 18) .add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING) .add(GroupLayout.TRAILING, jFormattedTextField1, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE) .add(GroupLayout.TRAILING, jCheckBox1) .add(GroupLayout.TRAILING, jCheckBox11)) .addPreferredGap(LayoutStyle.RELATED) .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING) .add(jFormattedTextField2, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE) .add(jCheckBox12) .add(jCheckBox2)) .addPreferredGap(LayoutStyle.RELATED) .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING) .add(jFormattedTextField3, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE) .add(jCheckBox13) .add(jCheckBox3)) .addPreferredGap(LayoutStyle.RELATED) .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING) .add(jFormattedTextField4, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE) .add(jCheckBox14) .add(jCheckBox4)) .addPreferredGap(LayoutStyle.RELATED) .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING) .add(jFormattedTextField5, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE) .add(jCheckBox15) .add(jCheckBox5)) .addPreferredGap(LayoutStyle.RELATED) .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING) .add(jFormattedTextField6, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE) .add(jCheckBox16) .add(jCheckBox6)) .addPreferredGap(LayoutStyle.RELATED) .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING) .add(jFormattedTextField7, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE) .add(jCheckBox17) .add(jCheckBox7)) .addPreferredGap(LayoutStyle.RELATED) .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING) .add(jFormattedTextField8, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE) .add(jCheckBox18) .add(jCheckBox8)) .addPreferredGap(LayoutStyle.RELATED) .add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING) .add(GroupLayout.TRAILING, jFormattedTextField9, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE) .add(GroupLayout.TRAILING, jCheckBox19) .add(GroupLayout.TRAILING, jCheckBox9)) .addPreferredGap(LayoutStyle.RELATED) .add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING) .add(jCheckBox20) .add(jCheckBox10) .add(jFormattedTextField10, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE))) .add(jPanel5Layout.createSequentialGroup() .add(4, 4, 4) .add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING) .add(jPanel5Layout.createSequentialGroup() .add(jLabel8) .addPreferredGap(LayoutStyle.RELATED) .add(jLabel9, GroupLayout.PREFERRED_SIZE, 256, GroupLayout.PREFERRED_SIZE)) .add(jSeparator1, GroupLayout.PREFERRED_SIZE, 474, GroupLayout.PREFERRED_SIZE)))) .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .add(GroupLayout.TRAILING, jPanel5Layout.createSequentialGroup() .addContainerGap(346, Short.MAX_VALUE) .add(jToggleButton3, GroupLayout.PREFERRED_SIZE, 132, GroupLayout.PREFERRED_SIZE) .addContainerGap()) ); jPanel5Layout.setVerticalGroup( jPanel5Layout.createParallelGroup(GroupLayout.LEADING) .add(jPanel5Layout.createSequentialGroup() .addContainerGap() .add(jPanel5Layout.createParallelGroup(GroupLayout.BASELINE) .add(jLabel5) .add(jFormattedTextField1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .add(jFormattedTextField2, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .add(jFormattedTextField3, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .add(jFormattedTextField4, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .add(jFormattedTextField5, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .add(jFormattedTextField6, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .add(jFormattedTextField7, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .add(jFormattedTextField8, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .add(jFormattedTextField9, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .add(jFormattedTextField10, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(LayoutStyle.RELATED) .add(jSeparator1, GroupLayout.PREFERRED_SIZE, 0, GroupLayout.PREFERRED_SIZE) .addPreferredGap(LayoutStyle.RELATED) .add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING) .add(jCheckBox3) .add(jCheckBox1) .add(jCheckBox2) .add(jCheckBox4) .add(jCheckBox5) .add(jCheckBox6) .add(jCheckBox7) .add(jCheckBox8) .add(jCheckBox9) .add(jLabel6) .add(jCheckBox10)) .addPreferredGap(LayoutStyle.RELATED) .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING) .add(jPanel5Layout.createParallelGroup(GroupLayout.LEADING) .add(jLabel7) .add(jPanel5Layout.createParallelGroup(GroupLayout.TRAILING) .add(jCheckBox13) .add(jCheckBox12) .add(jCheckBox11) .add(jCheckBox14) .add(jCheckBox15) .add(jCheckBox16) .add(jCheckBox17) .add(jCheckBox18) .add(jCheckBox19))) .add(jCheckBox20)) .addPreferredGap(LayoutStyle.RELATED, 42, Short.MAX_VALUE) .add(jPanel5Layout.createParallelGroup(GroupLayout.BASELINE) .add(jToggleButton3) .add(jLabel8) .add(jLabel9)) .addContainerGap()) ); jTabbedPane1.addTab("tab6", jPanel5); add(jTabbedPane1, BorderLayout.CENTER); bindingGroup.bind(); pack(); }// </editor-fold> 

请帮忙,我不明白。 你需要从我那里得到什么信息?

编辑:它似乎都是我无法触摸的代码。 我应该补充说,这开始与netbeans添加约200无效的import“我jCheckbox1”,我删除。

如果在静态初始化程序块中出现错误,您将得到一个ExceptionInInitializerError。

 class C { static { // if something does wrong -> ExceptionInInitializerError } } 

因为静态variables是在静态块中初始化的,所以也有这些错误的来源。 一个例子:

 class C { static int v = D.foo(); } 

=>

 class C { static int v; static { v = D.foo(); } } 

所以,如果foo()疯狂,你会得到一个ExceptionInInitializerError。

希望这可以帮助…

 class SomeClass{ //Code snippet here... } 

代码片段1:绝对可以 – 处理所有检查的exception

 static void m1(){ try{ throw new Exception(); } catch(Exception e){ System.out.println(e); } } static{ m1(); } 

代码片段2:不会编译 – 未检出的检查exception

 static void m1() throws Exception{ throw new Exception(); } static{ m1(); } 

代码片段3:确定(请参阅代码片段1)

 static void m1() throws Exception{ throw new Exception(); } static{ try{m1();} catch(Exception e){ System.out.println(e); //or whatever } } 

代码片段4:编译错误,initilalizer必须能够正常完成

 static{ throw new RuntimeException(); } 

基本上可以归结为:

  1. 在静态块内部,每个检查的exception都必须有一个处理程序。
  2. 如果发生RuntimeException,它将被包装在ExceptionInInitializerError中,然后将抛出后者。

这是有道理的,一个类应该可以正常完成初始化。 如果这是一个问题,这应该被归类为一个错误(从哪个恢复通常困难或不可能),而不是一个例外(这是通常可恢复)…

@Christian Ullenboom'的解释是正确的。

我猜测你所发布的OBD2nerForm代码是一个静态的初始化块,它是全部生成的。 基于这一点和堆栈跟踪,生成的代码看起来可能会跳闸,因为它已经发现你的表单没有它所期望的types的一些组件。

我会做以下尝试和诊断:

  • Google针对NetBeans生成的表单存在类似问题的报告。
  • 如果您运行的是旧版本的NetBeans,请扫描“bugs fixed”页面以获取更新的版本。 或者只是升级尝试新版本,看看是否解决了这个问题。
  • 尝试从表单devise中切割出来,直到问题“消失”…并试图找出真正的原因是这样的。
  • 在debugging器下运行该应用程序,以确定什么是(错误)types转换为什么。 只知道类名可能会有所帮助。 而查看对象的实例variables可能会揭示更多; 例如哪个特定的表单组件导致了这个问题。

我的怀疑是,根本原因是您的表单devise有点不同寻常(或不正确)的组合,并且NetBeans表单生成器中的错误与您的表单不匹配。 如果你能弄清楚,一个解决方法可能会显示出来。

我发现我绑定jFormattedCheckBox1.foreground到jCheckBox1 [$ {selected}] ….这是问题。 感谢您的帮助。

看起来,颜色不应该被绑定到一个布尔值。 我猜绑定是“高级function”?

我通过删除所有的控件,然后运行,然后撤消,然后删除一次,发现问题。 当我发现违规的控制,我检查了属性。