oct 071 example program demolookandfeel.java metal (java) motif windows

42
Oct 07 1 Example Program Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Upload: valentine-smith

Post on 16-Jan-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 1

Example ProgramExample Program

DemoLookAndFeel.java

Metal (java) Motif Windows

Page 2: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 2

OutlineOutline

WindowsIconsMenusPointers

Page 3: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 3

WindowsWindows

Windows are areas of the screen that act like individual terminals for an applicationBehaviour of windows determined by the system’s window manager (aka windowing system)Windows can contain text, graphics, menus, toolbars, etc.Can be moved, resized, closed, minimized, maximized

Page 4: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 4

Parts of a WindowParts of a Window

size control

focus (blue)

title bar

contents

scroll bar

size control

menu bar

Page 5: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 5

Layout PolicyLayout Policy

Multiple windows may exist simultaneouslyPhysical arrangement determined by the window manager’s layout policyLayout policy may be fixed or user-selectablePossible layouts include

Overlapping - One window partially obscures anotherTiled - Adjoin but don’t overlapCascading – A sequence with each window offset from the preceding according to a rule (e.g., 10 pixels to the right and below)

Let’s see…

Page 6: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 6

Overlapping WindowsOverlapping Windows

Page 7: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 7

Tiled WindowsTiled Windows

Page 8: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 8

Cascading WindowsCascading Windows

Page 9: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 9

FocusFocus

The active window is said to have focusTitle bar of active window is blue (or some other distinct colour)Title bars of inactive windows are greyClicking in an inactive window makes it the active window (i.e., gives it focus)

Screen must be redrawn to bring the active window to the front

Page 10: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 10

Window Size StatesWindow Size States

Windows have three size statesMaximized

Fills available space

MinimizedReduced to a title bar or icon

Normal (aka Restored)This is the size of the window, either when it was first opened, or before the window was maximizedFrom this mode, the window width and height may be adjusted

Page 11: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 11

Window Size ControlWindow Size Control

Via boxes in upper-right corner of window

When maximized…

When restored…

When minimized…

Minimize Restore Close

Minimize Maximize Close

Restore Maximize Close

Page 12: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 12

Window Size Control Window Size Control (2)(2)

Via handle in lower-right corner of window

When normal…

Drag to resize

Page 13: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 13

Window Size Control Window Size Control (3)(3)

Via virtual handles on edgesWhen normal…

Drag either edge to resize width

Drag either edge to resize height

Page 14: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 14

Window ManagersWindow Managers

User interfaces are typically implemented within the framework of a window manager

Also known as windowing system or user interface management system (UIMS)

ProvidesPartitioning to prevent chaos on the screen (What if there was only one window shared by all applications?)Layout PolicyInfrastructure to support common services in building UIs

Page 15: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 15

Window Manager Window Manager StructureStructure

Base layer (implements the basic infrastructure)

Output model (graphics primitives)Input model (keyboard, mouse)

UI layer (handles all visible aspects)Presentation (e.g., what is on top?)Commands (window & content manipulation)

Mapping of input actions to applicationsWhen building a UI, use services of windowing system where possible (rather than writing custom code)

Page 16: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 16

Containment HierarchyContainment Hierarchy

A window is made up of a number of nested interactive objects (e.g.,buttons, text fields, other windows)Relationship of objects is expressed by a containment hierarchy

based on screen geometry of objectsrepresents the hierarchy/nesting of the objects

Page 17: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 17

Containment Hierarchy - Containment Hierarchy - Example 1Example 1

Display Screen

“F:\cs160\Public” window Inner Window title bar

horizontal scroll bar contents area

“CDJukebox” folder“Home Ent…” folder…

size control …

“Web Newspaper” window…

Page 18: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 18

Containment Hierarchy - Containment Hierarchy - Example 2Example 2

Display ScreenOuter Win [black]

Result Win [tan]Result String

Inner Win [green]

Keypad [Teal]

- button+ button

0 button

= button

7 8 9

4 5 6

0 + -

1 2 3

=

93.54

ENT

Page 19: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 19

Java’s Containment Java’s Containment HierarchyHierarchy

With JFC/Swing, the basic building block for a window is the JFrame and its associated panes

Title

JFrameRoot paneLayered paneContent pane *Glass pane

* Most important for our purposes

Page 20: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 20

Java’s Containment Java’s Containment Hierarchy (2)Hierarchy (2)

Page 21: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 21

ContainersContainers

Components are placed in containersA JFrame is a top-level container

It exists mainly as a place for other components to paint themselvesOther top-level containers are dialogs (JDialog) and applets (JApplet)

A JPanel is an intermediate containerSole purpose is to simplify the positioning of interactive objects, such as buttons or text fieldsOther intermediate containers are scroll panes (JScrollPane) and tabbed panes (JTabbedPane)

Page 22: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 22

Atomic ComponentsAtomic Components

An atomic component is a low-level, self-sufficient entity that interacts with the userExamples: buttons (JButton), text fields (JTextField), combo boxes (JComboBox)JFrame and JPanel are also components, however…

They can hold other componentsAn atomic component cannot hold other components

Page 23: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 23

Containment Hierarchy for Containment Hierarchy for JFC/SwingJFC/Swing

JFrameJFrame

Content paneContent pane

JPanelJPanelJPanelJPanel

JButtonJButton JLabelJLabel etc.

etc.

JPanelJPanel

JButtonJButton JTextFieldJTextField

Page 24: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 24

So…So…

Title

1.2345

987

654

321

-+0

ENT=

Atomic component (text field)

Atomic component(buttons)

JFramecontent paneJPanelJPanel

JPanel

Page 25: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 25

Example ProgramExample Program

DemoSwing.java

CTRL-SHIFT-F1 dumps the containment hierarchy to the console (next slide)

JButton

JLabel

JButton

JFrameRoot paneLayered paneContent paneJPanel (container)

Page 26: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 26

Containment Hierarchy Containment Hierarchy (abbreviated)(abbreviated)

DemoSwingFrame[frame0,0,0,224x208, ... javax.swing.JRootPane[,4,23,216x181, ... javax.swing.JPanel[null.glassPane, ... javax.swing.JLayeredPane[null.layeredPane,0,0,216x181, ... javax.swing.JPanel[null.contentPane,0,0,216x181, ... javax.swing.JPanel[,0,0,216x181, ... javax.swing.JButton[,50,50,116x27, ... javax.swing.JLabel[,50,77,116x27, ... javax.swing.JButton[,50,104,116x27, ...

DemoSwing.javaDemoSwing.java

Page 27: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 27

OutlineOutline

WindowsIconsMenusPointers

Page 28: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 28

What is an IconWhat is an Icon

From Webster’s dictionary:Icon: a pictorial representation

A window may be closed and lost forever, or…

Shrunk to a reduced representationThe reduced representation is called an icon

The act of reducing a window to an icon is called iconifying or minimizingA window may be restored by clicking on its icon

Page 29: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 29

Advantages of iconsAdvantages of icons

Save screen spaceServe as a reminder of available dialogs, applications, or commands that may be restored or invoked

Page 30: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 30

Icons Are Used to Icons Are Used to Represent…Represent…

Disk drives

Available applications

Miminized applications

Minimized windows

Folders

Files

Commands

States

Page 31: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 31

OutlineOutline

WindowsIconsMenusPointers

Page 32: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 32

What is a Pointer?What is a Pointer?

A pointer is the input device used to interact with GUI components

E.g., mouse, trackball, joystick, touchpad, finger, stylus, light pen

Two primary purposesPosition control of the on-screen tracker Selection via buttons

Page 33: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 33

Direct vs. Indirect InputDirect vs. Indirect Input

Direct inputVia finger, stylus, light penNo spatial displacement between input device and displayTracker generally not neededSelection via tapping or pressing

Indirect inputVia mouse, etc.Spatial displacement between input device and displayTracker needed Selection via button presses

Page 34: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 34

Selection PrimitivesSelection Primitives

Generally at least two buttons on pointing devicesSelection primitives

Primary button (default = left)Single click – selectDouble click – launchDrag – select region

Secondary button (default = right)Click – invoke context-sensitive menu

Page 35: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 35

TrackerTracker

The on-screen symbol that follows (“tracks”) the motion of the input device is called a tracker (aka cursor)Two primary purposes

Position indicator – crucial feedback for input controlState indicator – reveals current state of the system or GUI component

Page 36: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 36

Tracker Hot SpotTracker Hot Spot

The tracker is a bit-mapped image (x by y pixels)One pixel in the image is defined as the hot spotSelection determined by the coordinate of the hot spotWhen designing custom trackers, make sure the image has an obvious hot spot if selection is required while the tracker is displayed

Page 37: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 37

Tracker ExamplesTracker Examples

Examples from MS Windows

Where is the hot spot?

Page 38: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 38

Example ProgramExample Program

DemoCursorControl.java

Note:Cursor is not captured with “print screen”. Run the program to observe the cursor changing.

Page 39: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

More WidgetsMore Widgets

Page 40: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 40

OutlineOutline

More text componentsTool barsSlidersScrollbarsListsTables

Page 41: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 41

Validating InputValidating Input

Input data must be in the format required by the applicationExamples:

Numeric field with value in certain rangePostal or zip codeDate/time formats

Invalid input must be corrected before proceedingIf invalid input, can present a popup message, generate audio alarm, etc.

Page 42: Oct 071 Example Program DemoLookAndFeel.java Metal (java) Motif Windows

Oct 07 42

Example ProgramExample Program

DemoInputValidation1.java

DemoInputValidation2.java