230 likes | 249 Views
Dive into the world of event-driven programming with this comprehensive guide, exploring control mechanisms, event handling, and practical examples in GUI and embedded applications. Learn about the Model-View-Controller design, Java event handling, and designing Java applets for web browsers.
E N D
Programming Languages2nd editionTucker and Noonan Chapter 16 Event-Driven Programming Of all men’s miseries the bitterest is this, to know so much and to have control over nothing. Herodotus (484-432 BC)
Contents 16.1 Event-Driven Control 16.2 Event Handling 16.3 Three Examples 16.4 Other Applications
A conventional model of computation has the program prescribe the exact order of input. • Programs terminate once the input is exhausted. • Event-driven programs do not control the sequence in which input events occur.
Examples • GUI applications: Model-View-Controller design • Embedded applications: • cell phones • car engines • airplanes
16.1 Event-Driven Control • Computation as interaction [Stein] • Computation is a community of persistent entities coupled together by their ongoing interactive behavior ... Beginning and end, when present, are special cases that can often be ignored.
Imperative and Event-Driven Paradigms Contrasted Figure 16.1
Input to an event-driven program comes from autonomous event sources. Eg: human, robot sensors, engine sensors.
Properties • An event-driven program has no perceived stopping point. • The traditional read-eval-print loop does not explicitly appear. • An application processes an input and exits.
Model-View-Controller (MVC) • Model: the object being implemented. Ex: game, calculator. • Controller: input mechanisms. Ex: buttons, menus, combo boxes. • View: output.
Ex: Tic-Tac-Toe Model • Whose turn is it? • State of the board. • Has someone won? • Are there no empty squares?
Events in Java • Subclasses of AWTEvent • Event sources in Swing are subclasses of JComponent • Program must listen for events • Ex: for a JButton b • b.addActionListener(listener)
Java Class AWTEvent and Its Subclasses* Figure 16.2
Java EventListener Class Interface and Its Subclasses* Figure 16.4
Java GUI Application • A GUI application is a program that runs in its own window and communicates with users using buttons, menus, mouse clicks, etc. • A GUI application often has a paint method, which is invoked whenever the application needs to repaint itself.
16.3.2 Designing a Java Applet • Can convert previous application • An applet runs inside a web browser • Differences • Extend JApplet • Lacks a main method • Method init replaces constructor
Tic-Tac-Toe • State of the board • Whose turn: X or O • Whether game is over
private int player = -1; // Current player: EX, or OH • private int[ ] board = new int[9];
Elements of a Typical ATM Machine Transaction User Interface Figure 16.25
Overall Design of a Home Security System Figure 16.26