2014-03-07 47 views
1

使用适当的向导创建了一堆JFrame类。实现与jframe类的接口

创建一个接口并决定让JFrame类实现这个接口。通常情况下,添加一个implements CaptureObserver声明一个类时,类声明的红色下划线,错误是说

System.Bill.Operation.BillForm不是抽象的,不重写 抽象方法 的onError(COM .lti.civil.CaptureStream,com.lti.civil.CaptureException)在 com.lti.civil.CaptureObserver

我怎样才能解决这个问题?

回答

2

您需要实现界面中定义的方法。

如果你有这样的:

public interface CaptureObserver { 
    public void onError(CaptureStream stream, CaptureException exc); 
} 

然后,你需要这样的:

public class BillForm extends JFrame implements CaptureObserver { 
    // Don't forget your constructor 
    public BillForm() { 
     super(); 
    } 

    @Override 
    public void onError(CaptureStream stream, CaptureException exc) { 
     // Code 
    } 
} 
+0

感谢您sugestn,我现在发现错误.. – user3391137

2

那个错误意味着你的类实现了接口,但是它并没有包含该接口定义的所有方法。解决方案:给班级丢失方法。在你的情况下,这个错误告诉你你丢失了什么CaptureObserver的方法,onError(com.lti.civil.CaptureStream,com.lti.civil.CaptureException)


一些无关的问题和建议:

使用相应的向导创建了一堆的JFrame类。

如果您是Swing的新手,请不要使用“向导”来创建GUI,而应该尝试手动制作它们。它会让你更好地了解使用该库。此外,努力创建JPanel而不是JFrames,因为这会使GUI类具有更大的灵活性。有了一个JPanel,你可以把它变成一个JFrame,或者如果需要的话,一个JDialog,一个的JOptionPane,一个JApplet的,另外的JPanel,一个一个CardLayout的“观点”,等等

创建一个接口,决定让JFrame类实现这个接口。

通常最好避免让GUI /视图类实现监听器接口,因为这会给一个类带来太多不同的责任。也许这应该是一个匿名的内部类或一个单独的conctrol类的一部分。

通常情况下,添加一个“实现CaptureObserver”声明一个类时,类声明的红色下划线,错误是说“System.Bill.Operation.BillForm不是抽象的,不重写抽象方法的onError (com.lti.civil.CaptureStream,com.lti.civil.CaptureException)在com.lti.civil.CaptureObserver“我怎么解决它。请帮助...

我们已经在上面讨论过了。