The midterm will be part essay and part T/F, multiple choice, fill in the blank. The essay attempts to test your conceptual / design knowledge, the T/F, multiple choice, fill in the blank attempts to test your implementation knowledge. You will need to bring a 50 item scantron form.
The T/F, multiple choice, fill in the blank, questions try to test you knowledge of using Swing / Java to make GUIs. You maybe asked to read a fragment of code and determine the purpose of the code. You maybe asked if a fragment of code is correct or not and if not why.
There will not be any questions about C# / Windows Forms on the midterm.
Here are some questions to guide your review, but not as your only studying guide. Think about the problems you have had to solve in completing project 1. Are some of them general GUI design and implementation problems? If so they are good candidates for an exam question.
A design question.
(a) From a sketch and description of a simple program (like the simple ToDo list program or Attractor in complexity) describe the containers, layout managers and components used in the design. Be sure to specify what container a child is added to (its parent container).
(b) For the same design as (a) specify the event "wiring". What components fire what type of events and how are the events handled?
GUI applications are event driven. In Swing / Java describe what events are. How can the event a UI component fires be associated with a method, so that the method "responds" to the event (event handling)? Briefly describe the situations where on way of handling events is preferred over another. Briefly describe and contrast usage of classes, interfaces, and adapters for handling events.
Describe custom painting in Swing / Java. How is drawing done? What is the Graphics class used for and how is it used? How can icons and text be "drawn" on component? How are application resize and restore (minimized becomes maximized) events handled in the rendering of a Swing / Java application both for UI components and for custom painting?
What is the MVC architecture? Describe Swing / Java's version of the MVC architecture and why this form is used by Swing / Java? What are the benefits of Swing / Java's version of MVC?
What types of dialogs can be used / created in Swing / Java applications? Briefly describe the usage of dialogs in GUI applications and the "software architecture" of a custom a JDialog (what steps and resources do you need to do and in what order). Contrast JFrame and JDialog. How can you get information back from a dialog in the frame after the dialog is no longer visible?
What are menus? Describe a couple of common, or good uses of menus. How are basic menus created in Swing / Java? What is the "software architecture" of menus. Provide an example of a common menu structure in pseudocode. You don't have to know the exact names of Java classes but you should have good descriptive statements of what kinds of classes exist and how they are used. Of course the actual names are easier to use.
Layout managers control the size and placement of the components in a container. Describe the use of BorderLayout and Box layout managers in designing and controlling components. How can the size of components be controlled or held constant on resizing events for the application? Provide some general guidelines for using layout managers to someone encountering them for the first time.
What was the hardest GUI design and implementation problem (not java programming problem) that you encountered and resolved for project 1. What GUI concept does this reflect? How would you use this problem as a teaching example if you had to present a lecture to a "585" class in the future?