Presentation on theme: "Feb 14, principles 1&2 Focus on users and their tasks –Identify the users –Clarify the purpose (goal software helps users achieve) –What advantage does."— Presentation transcript:
Feb 14, principles 1&2 Focus on users and their tasks –Identify the users –Clarify the purpose (goal software helps users achieve) –What advantage does the software offer (what do users like or dislike about status quo) –What will the users have to learn or do differently to use the software? –What conceptual model do the users already have about their task and the data they use to perform it? –What are the skills or expertise of the user pertaining to the goal tasks? Become acquainted with representative users, collaborate with them in the task domain. Conduct a detailed task analysis (understand the context of the task domain and the relative importance of task)
Consider Function, Then Presentation Doesnt mean do GUI last What mental model does the user bring to the GUI? What data does the GUI permit the user to manipulate? What manipulations does the user want to do? What options controls, settings, and choices does the GUI make available to the user what are the defaults, and with what frequency does the user need to modify these settings? Create a conceptual model, not an interface description, keep it simple, make it correspond to tasks (clarify the types of objects processed and the kinds of actions performed on them).
Function, cont Develop a lexicon of terminology relating to each user-visible concept Write task scenarios (user cases) Outline criteria for product documentation and usability testing Make first cut at implementation architecture by considering objects identified
Chapter 15: Intermediate Containers JPanel (grouping container) –Generally opaque with painted backgrounds –Set layout manager individually (setLayout() or constructor option) –Use add() methods to place component in panel –tutorial exampletutorial example –Text exampleText example ScrollPane (for large or growable displays) –Assign client component upon construction, add to contentPane (if at preferred size, no scroll bars) –Works with Jviewport for pictures –Uses JScrollBar and can use other objects such as the illustrated Rule and Corner. –On-line descriptionOn-line description Scrolling-Savvy Client –This term is used to describe a client that implements the Scrollable interface whose 5 methods provide information to the ScrollPane on how far to scroll when either a button or the track of the ScrollBar is clicked.
Intermediate cont Sizing –When you put a client in a scroll pane it gives it to a JViewPort object which interacts with the ScrollPanes scrollBars to compute what is painted in the ScrollPanes center. –The ScrollPanes dimensions are determined By the size of the container that holds it By its PreferredSize setting By the size of its 9 components. –Its default preferredSize is to display its viewport at its perferredSize but this may not be possible if it has to display row and column headers in addition to the viewport. –If the client is scrolling-savvy, the client will give the the viewport its preferredViewportSize which, if less than the actual size (perferredSize) will indicate scrollbars. –Once realized the ScrollPane displays a computed portion of its client. If the perferredSize of the client changes, the ScollPane will not know this until client.revalidate() is executed to force all of the layout managers to re-compute.
Intermediate, cont Split Pane –Usually the components are themselves ScrollPanes. Construtor with three arguments(dir, client1, client2) –The focus is on the divider bar Horizontal or Vertical splits –SetOneTouchExpandable(true) –setDividerLocation(150) or (.25) means left/top percentage Initial sizes of each split area, range of motion –Set Minimum size of component (down to 0) –Perferred size of components (default minimum) –Can change components with setLeftComponent or setTopComponent –Can add() but only twice (must remove to repopulate) Tabbed Pane –Use add() to place other panes in tabs Takes as arguments label, [icon,] panel, [and tool tip]