我已经构建了一个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。
我该怎么做?
答案 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()方法。