2016-05-24 109 views
0

我已经构建了Java Swing应用程序。现在,我有这样的结构:如何设置每个类中实现的监听器接口?

类abstractNewOrder

public abstract class abstractNewOrder{ 

    .. 
    .. 
    .. 
    public JComboBox comboBoxFornitore; 

    public abstract void populateField(int row); 
    public abstract void getDetail(Articoli articolo); 

} 

这是PanelNewOrderClass

public class PanelNewOrder extends abstractNewOrder{ 

    public PanelNewOrder(){ 
     //TO DO 
    } 

    public void popolaCampi(int row) { 
     //TODO 
    } 

    public void getDetail(Articoli articolo){ 
     //TODO 
    } 
} 

现在,我可以有更多的类扩展abstractNewOrder,我会喜欢每个扩展这个类的类(abstractNewOr DER),必须实现对组合框一个ActionListener,所以我设置例如

comboBoxFornitore.addActionListener(listener) 

在抽象类,我敢肯定,每个扩展实现了一个监听器类。

我该怎么办呢?

回答

1

abstract方法添加到abstractNewOrder扩展类将不得不执行。

2

您的abstractNewOrder可以实现ActionListener接口。这样,这个类的所有非抽象子类都需要提供接口方法的实现。

1

如下我会做到这一点:

public abstract class AbstractNewOrder implements ActionListener 
{ 
    public JComboBox<String> comboBoxFurniture; 

    public AbstractNewOrder() 
    { 
     this.comboBoxFurniture = new JComboBox<String>(); 
     this.comboBoxFurniture.addActionListener(this); 
    } 

    //[...] Other methods you need [...] 
} 

然后,只需扩展此类。该Abstract类的实现现在必须重写onActionPerformed()方法。

+0

这是该问题的正确答案。 为了清楚起见,我只会在抽象类中添加onActionPerformed()的空声明。 – Maxvader