【发布时间】:2014-01-03 10:27:01
【问题描述】:
我收到以下错误:
线程“AWT-EventQueue-0”java.lang.VerifyError 中的异常:构造函数必须调用 super() 或 this(),然后在方法 freetts.FTall.()V 在偏移量 0 处返回 在 freetts.FormTTS.MenuContinueButtonActionPerformed(FormTTS.java:429) 在 freetts.FormTTS.access$100(FormTTS.java:59) 在 freetts.FormTTS$2.actionPerformed(FormTTS.java:127) 在 javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) 在 javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) 在 javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 在 javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 在 javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 在 java.awt.Component.processMouseEvent(Component.java:6505) 在 javax.swing.JComponent.processMouseEvent(JComponent.java:3321) 在 java.awt.Component.processEvent(Component.java:6270) 在 java.awt.Container.processEvent(Container.java:2229) 在 java.awt.Component.dispatchEventImpl(Component.java:4861) 在 java.awt.Container.dispatchEventImpl(Container.java:2287) 在 java.awt.Component.dispatchEvent(Component.java:4687) 在 java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) 在 java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) 在 java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) 在 java.awt.Container.dispatchEventImpl(Container.java:2273) 在 java.awt.Window.dispatchEventImpl(Window.java:2713) 在 java.awt.Component.dispatchEvent(Component.java:4687) 在 java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707) 在 java.awt.EventQueue.access$000(EventQueue.java:101) 在 java.awt.EventQueue$3.run(EventQueue.java:666) 在 java.awt.EventQueue$3.run(EventQueue.java:664) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 在 java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) 在 java.awt.EventQueue$4.run(EventQueue.java:680) 在 java.awt.EventQueue$4.run(EventQueue.java:678) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 在 java.awt.EventQueue.dispatchEvent(EventQueue.java:677) 在 java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211) 在 java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) 在 java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) 在 java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) 在 java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
大约一个月后我正在检查我的程序,之前相同的代码没有给出错误,我想我没有更改任何可能导致这种情况的东西。 我试图解决问题;所以在第一行的错误中提到了:
在 freetts.FormTTS.MenuContinueButtonActionPerformed(FormTTS.java:429)
于是我打开了 FormTTS.java:429 这是代码:
private void MenuContinueButtonActionPerformed(java.awt.event.ActionEvent evt) {
FTall allform = new FTall();
FTdirect directform = new FTdirect();
FTsmall1 small1form = new FTsmall1();
FTsmall2 small2form = new FTsmall2();
FTsmall3 small3form = new FTsmall3();
FTbig1 big1form = new FTbig1();
FTbig3 big3form = new FTbig3();
FTmc1 mc1form = new FTmc1();
FTmc2 mc2form = new FTmc2();
String S = (String) jCB2.getSelectedItem();
String R = (String) jCB3.getSelectedItem();
String P = (String) jCB4.getSelectedItem();
.....
第 429 行特别是:
FTall allform = new FTall();
这是被调用的构造函数的代码:
public FTall() {
initComponents();
}
【问题讨论】:
-
听起来你的
FTall构造函数坏了。请发布该代码。 -
FTail 中的构造函数似乎有问题
-
Jon Skeet,Maciej Cygan:哪个 FTall 代码??我的意思是 FTall 是另一个文件,(见图:FTall.java)
-
@JonSkeet 这似乎是一个字节码错误,不能用合法的 Java 源代码表示。
-
@DakshShah:不要显示
FTall的图片 - 包括构造函数的源代码。