2016-05-24 111 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