如何在每个类中设置一个监听器接口?

时间:2016-05-24 10:18:24

标签: java swing interface actionlistener

我已经构建了一个Java Swing应用程序。现在我有了这个结构:

  

class 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的类,我希望每个扩展此类的类(abstractNewOrder)都必须为ComboBox实现一个actionListener,所以我设置为例如

comboBoxFornitore.addActionListener(listener)

在abstractClass中,我确信每个扩展的类都实现了一个Listener。

我该怎么做?

3 个答案:

答案 0 :(得分:2)

您的class MyModel < ActiveRecord::Base validates :param_1, presence: true, if: proc{|o| o.need_validation?(:param_1)} validates :param_2, presence: true, if: proc{|o| o.need_validation?(:param_2)} end 可以实施abstractNewOrder界面。这样,此类的所有非抽象子类都需要提供接口方法的实现。

答案 1 :(得分:1)

abstract添加abstractNewOrder方法,扩展类必须实现。

答案 2 :(得分: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()方法。