Explain the roles of event sources and event listeners in event-driven programming.
Define a GUI class that is derived from JFrame and implements the ActionListener interface.
Design and implement a graphical user interface (GUI) application programs using the various classes of the Java Swing package.
Explain the role of "event source" objects and give examples of two classes whose instances are "event source" objects
Explain the role of "event listener" objects and give examples of two classes whose instances are "event listener" objects
Create an inner class that implements ActionListener to serve as an event listener for ActionEvents generated by event sources such as JButtons
Subscribe the ActionEvents generated by a event source such as a JButton to be listened to by an event listener
Define the action command string for an event source
Design and implement event handling methods to handle multiple Action Events
Implement code to handle an action event from the JButton or JTextField Java Swing classes
Explain the purpose of the argument passed to the actionPerformed() method
Design and implement an ActionListener class
Determine an event source from within an actionPerformed() method
Determine the specific object that initiated an Action Event
Describe at least two different ways of structuring ActionListener classes and discuss advantages and disadvantages of each
Describe the differences between an inner class and a regular (non-inner) class
Make use of inner classes to implement ActionListener classes
Read and understand UML class and sequence diagrams.
Implement source that meets the design specified in a UML class and sequence diagram.
Draw a UML class diagram illustrating the relationships between two or more classes, using the appropriate connectors indicating generalization, realization, exclusive composition, shared aggregation, dependency, association, and nesting.
Indicate multiplicity in composition, aggregation, and association relationships.
Use the Java Collection Framework to create an ArrayList.
Describe the advantages of an ArrayList over an Array.
Populate an ArrayList<E> with objects of a specific type E.
Iterate through an array list examining each object in the list.
Serialize an ArrayList using ObjectOutputStream
Define the software quality attribute robustness (Robust software behaves “reasonably” even in unforeseen circumstances, such as incorrect input or hardware failure). Explain how exception handling increases the robustness of software.
Define exception; explain the concepts of “catch” and “throw” as they relate to exceptions.
For a given program and input condition, determine the control flow of a try-catch block, with and without the finally clause.
Implement a method that catches an exception thrown by a class in the Java Standard Library.
Implement a method that uses a try-catch block and a repetition statement (i.e., loop) to validate user input.
Distinguish between checked and unchecked exceptions.
Write a method that throws an exception.
Explain the concept of exception propagation; explain the outcome if an exception is thrown and no catch block for that exception is found on the program stack.
Explain the consequences of not handling a checked exception within a method where the checked exception occurs
Use multiple catch blocks to customize the way different types of exceptions are handled
Use the throws clause to postpone when a checked exception is handled
Create a Java File object and associate it with a file on disk.
Determine if a File object exists.
Determine if a File object is a file or a directory.
Associate a low-level input (i.e., FileInputStream) or output (i.e., FileOutputStream) stream with a File object.
Describe how low-level file I/O works (i.e., reading or writing of byte data, importance of the sequence of data).
Describe how high-level (DataOutputStream and DataInputStream ) file I/O works (i.e., methods for reading and writing of primitive data types, association with low-level stream, the importance of the sequence of data ).
Explain why it is important to close a stream when file operations are complete.
Explain what the PrintWriter class is used for.
Explain the difference between binary and text files.
Describe how Object I/O (ObjectOutputStream and ObjectInputStream) works ( i.e., methods for reading and writing of objects, association with low-level stream, the importance of the sequence of objects and type casting).
Use inheritance in creating classes.
Use the “protected” modifier in defining an inheritance hierarchy.
Explain why a class with a superclass other than object should make an explicit call to a constructor of the superclass.
Describe when to use an abstract class.
Explain the concept of the Java interface
Create an abstract method; describe the purpose of abstract methods.
Explain the concept of polymorphism.
Read code that uses inheritance and polymorphism and determine its output on execution.
Explain what it means for a class to implement an interface