import java.awt.*; import java.util.*; public class ObserverPlan implements Observer { private Hashtable table; private char axe; public ObserverPlan(char axe){ this.axe = axe; table = new Hashtable(); } public void update(Observable o, Object arg){ Volume v = (Volume)o; if ((arg==null) || (((Character)arg).charValue()!=axe)){ table.put(Integer.toString(v.hashCode()),v.getSurface(axe)); System.out.println("surface perpendiculaire à l'axe " + axe + " = " + surfaceGlobale()); } } private int surfaceGlobale(){ int res = 0; for (Enumeration e = table.elements() ; e.hasMoreElements() ;) { res += ((Integer)e.nextElement()).intValue(); } return res; } }