J'utilise Netbeans. J'ai fait des choses avec des liaisons et maintenant, chaque fois que je lance mon programme, avant même que le formulaire ne soit initialisé, cela me donne une erreur
L'exception dans thread principal se produit avant que la fiche ne soit encore un objet initial. La forme n'est même pas encore un objet. Chaque ligne de ma main () provoque une exception. Choses aléatoires. Je ne comprends pas du tout.
Voici l'erreur.
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
La ligne 731 d'OBD2nerForm est bindingGroup.bind (); Parfois, il se trompe sur pack ();
l'exception dans "main" ne semble même pas pertinente, car elle se produit dès que le programme est exécuté et chaque fois que je commente une ligne, elle passe à la suivante.
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>
s'il vous plaît aider, je ne comprends pas. De quelle information avez-vous besoin de moi?
edit: tout semble être du code que je ne peux pas toucher. J'ajouterais que cela a commencé avec l'ajout par Netbeans d'environ 200 importations non valides "import jCheckbox1" que j'ai supprimées.
Vous obtenez une ExceptionInInitializerError si quelque chose ne va pas dans le bloc d'initialisation statique.
class C
{
static
{
// if something does wrong -> ExceptionInInitializerError
}
}
Comme les variables statiques sont initialisées dans des blocs statiques, il existe également une source de ces erreurs. Un exemple:
class C
{
static int v = D.foo();
}
=>
class C
{
static int v;
static
{
v = D.foo();
}
}
Donc, si foo () devient sauvage, vous obtenez une ExceptionInInitializerError.
J'espère que cela t'aides...
class SomeClass{
//Code snippet here...
}
Extrait de code 1: Absolument OK - toutes les exceptions vérifiées sont gérées
static void m1(){
try{
throw new Exception();
} catch(Exception e){
System.out.println(e);
}
}
static{
m1();
}
Extrait de code 2: Ne compile pas - exception vérifiée non signalée
static void m1() throws Exception{
throw new Exception();
}
static{
m1();
}
Extrait de code 3: OK (voir l'extrait de code 1)
static void m1() throws Exception{
throw new Exception();
}
static{
try{m1();}
catch(Exception e){
System.out.println(e);
//or whatever
}
}
Extrait de code 4: erreur de compilation, initilalizer doit pouvoir se terminer normalement
static{
throw new RuntimeException();
}
En gros, cela se résume à ceci:
Cela est logique dans la mesure où une classe devrait pouvoir mener à bien une initiation normale. S'il s'agit d'un problème, il convient de le classer comme une erreur (dont la récupération est généralement difficile ou impossible) plutôt qu'une exception (qui est généralement récupérable) ...
L'explication de @Christian Ullenboom est correcte.
Je suppose que le OBD2nerForm
Le code que vous avez posté est un bloc d’initialisation statique et est entièrement généré. Sur la base de cela et de la trace de la pile, il semble probable que le code généré est en train de démarrer car il a trouvé un composant de votre formulaire qui n'a pas le type attendu.
Je ferais ce qui suit pour essayer de diagnostiquer ceci:
Je soupçonne que la cause première est une combinaison de quelque chose d'un peu inhabituel (ou incorrect) avec votre conception de formulaire et de bugs dans le générateur de formulaire NetBeans qui ne gèrent pas votre formulaire. Si vous pouvez le comprendre, une solution de contournement peut se révéler.
J'ai trouvé que j'avais lié jFormattedCheckBox1.foreground à jCheckBox1 [$ {selected}] .... c'était le problème. Merci de votre aide.
Il semble qu'une couleur ne devrait pas pouvoir être liée à un booléen. Je suppose que les reliures sont une "fonctionnalité avancée"?
J'ai trouvé le problème en supprimant tous les contrôles, puis en exécutant, puis en annulant et en supprimant un à la fois. Quand j'ai trouvé le contrôle incriminé, j'ai examiné les propriétés.
Partout où il y a des erreurs ou des exceptions dans les blocs statiques, cette exception sera levée. Pour obtenir la cause de cette exception, utilisez simplement Throwable.getCause()
pour savoir ce qui ne va pas.