70 likes | 182 Vues
Uživatelská rozhraní 9. cvičení. Přepracování na MVC. Přepracujte úlohu z minulého cvičení tak, aby splňovala architekturu Model- View - Controller . MVC odd ě luje datový model aplikace, uživatelské rozhraní a řídicí logiku. Model - View - Controller.
E N D
Uživatelská rozhraní 9. cvičení
Přepracování na MVC • Přepracujte úlohu z minulého cvičení tak, aby splňovala architekturu Model-View-Controller. • MVC oddělujedatový model aplikace, uživatelské rozhraní a řídicí logiku.
Model - View - Controller • Model (model) - reprezentace informací, dat a chování. • View (zobrazení) - zobrazuje data a ovládání do podoby vhodné k interaktivní prezentaci uživateli. • Controller (řízení) - reaguje na události (typicky pocházející od uživatele) a zajišťuje změny v modelu, typicky dochází k překladu událostí od GUI na volání metod modelu.
Model-View-Controller • Existuje několik variant MVC v Java SE je využívaná tato: • Vlastnosti: • Lze mít vice pohledůna jeden model. • Znovupoužitelnostmodelů. • http://java.sun.com/blueprints/patterns/MVC-detailed.html
public classCalculator { public static void main(String[] args) { CalcModelmodel = newCalcModel(); CalcViewview = newCalcView(model); view.setVisible(true); } } public classDigitActionextendsAbstractAction { @Override public voidactionPerformed(ActionEvent e) { model.addDigit(digit); }
class Test implementsActionListener { public voidactionPerformed(ActionEvent e) { System.out.println(e.getActionCommand()); } } Vector<Component> but = new Vector<Component>(); but.addElement(Button1); for (int i = 0; i < this.but.size(); i++) { this.but.get(i).setFont(new Font("Verdana",Font.BOLD,18)); }
Dopracovat CalcModela vytvořit „servisní“ okno. • Pokud správně doplníte CalcModel začne přiložené GUI pracovat správně bez nutnosti změny. • Vytvořte „servisní“ okno, které bude zobrazovat stav jednotlivých proměnných modelu kalkulačky a umožní jejich změnu. Toto okno může být vytvořeno i několikrát a bude se vytvářet pomocí položky v menu aplikace. Děkuji za pozornost. martin.nemec@vsb.cz