Window Interfaces Using Swing - PowerPoint PPT Presentation

1 / 78
About This Presentation
Title:

Window Interfaces Using Swing

Description:

The classes that we define will be derived from classes in the ... define a method named ... A class can define methods in addition to the methods required by ... – PowerPoint PPT presentation

Number of Views:57
Avg rating:3.0/5.0
Slides: 79
Provided by: robertp6
Category:

less

Transcript and Presenter's Notes

Title: Window Interfaces Using Swing


1
Window Interfaces Using Swing
  • Chapter 12

2
Outline
  • Background
  • Basic Swing Details
  • Buttons and Action Listeners
  • Container Classes
  • Text I/O for GUIs

3
Introduction
  • Modern programs use window interfaces with
    buttons and menus, and allow users to make
    choices using a mouse.
  • We will learn how to write simple window
    interfaces using the Swing library.
  • Well also use an older library known as AWT
    (Abstract Windows Toolkit) which is a necessary
    complement to the Swing library.

4
Human Computer Interaction
Transparent Complexity
Domesticated Computer
Pervasive Technology
5
Steps of HCI
Goal
Action
Specification
Execution
Intention
Evaluation
Perception
Interpretation
6
Human Computer Interaction
HCI
MMI, User Interface, Interface Science, Usability
Engineering ....
7
GUIs - Graphical User Interfaces
  • Windowing systems that interact with users often
    are called GUIs.
  • A GUI accepts information from a user and makes
    it available to the program for processing.
  • Most of the interaction is graphical in nature.

8
Graphical User Interfaces
1/2 1/4 1/8 1/16 1/32 1/64 .... ?
9
Icons
10
Macintosh
  • Introduced HCI into the mass market.
  • Uniformity of the user interface
  • A de facto interface standard
  • Direct manipulation
  • on the new technology base
  • Multi-windows, menu hierarchy, mouse, icons, ...

11
Definitions
  • A window is a portion of the users screen - a
    screen within a screen.
  • Typically, it has a border and a title.
  • A menu is a list of alternatives available to the
    user.
  • A menu item is selected by using the mouse to
    place the cursor over the selected item, and by
    clicking the mouse.

12
Definitions, cont.
  • A button serves much the same purpose as a menu
    item.
  • Typically, a button has a label.
  • The button is pushed by using the mouse to
    position the cursor over the button, and by
    clicking the mouse.

13
Event-Driven Programming,I
  • Most GUI program use events and event handlers.
  • A GUI event is an object that represents some
    action such as clicking a mouse, dragging a
    mouse, pressing a keyboard key, clicking the
    close-window button on a window, etc.
  • When an object generates an event, it is said to
    fire the event.

14
Event-Driven Programming, II
  • Objects that can fire events have one or more
    listener objects.
  • The programmer chooses which event-firing objects
    have listeners.
  • Event handlers are programmer-defined methods
    associated with the listener objects that
    determine what happens when events are detected
    by their associated listener(s).

15
Event-Driven Programming, III
16
Characteristics of Event-Driven Programming
  • In general, its impossible to predict the
    sequence of events in advance.
  • When we write a GUI, there may be several methods
    that we never call directly.
  • Instead, Swing calls these methods for us in
    response to events which have listeners.
  • The classes that we define will be derived from
    classes in the Swing library.
  • Sometimes well use inherited methods, and
    sometimes well override them.

17
Basic Swing Details Outline
  • A Simple Window
  • Window Listeners
  • Size Units for Screen Objects
  • setVisible
  • Color
  • Anonymous Objects
  • JFrame Methods
  • Layout Managers

18
Basic Swing Details
  • Well start with window elements to
  • close the window
  • put text in the window
  • color the window
  • put a title on the window.

19
Programming Example A Simple Window
20
Programming Example A Simple Window, cont.
  • class FirstSwingDemo

21
Window Listeners
  • A window listener listens to events from a
    window, such as a click on the close-window
    button.
  • A window listener is registered when it becomes
    associated with the object(s) to which it listens.

22
Clicking the Close-Window Button
23
Class WindowDestroyer
  • A listener class often is derived from class
    WindowAdapter.
  • The inherited methods respond automatically to
    different kinds of events.
  • The way an event is handled depends on the
    programmer.
  • Typically, an inherited method definition is
    overridden.

24
Class WindowDestroyer, cont.
  • class WindowDestroyer

25
Ending a Swing Program
  • A GUI program is based on a kind of infinite
    loop.
  • The windowing system normally stays on the screen
    until the user indicates that it should go away.
  • The exit method ends a Java program as soon as
    the exit method is executed.
  • System.exit(0)

26
Methods of Class WindowAdapter
27
Methods of Class WindowAdapter
28
Size Units for Screen Objects
  • The size of an object on the screen is measured
    in pixels.
  • A pixel is the smallest unit of screen space onto
    which you can write.
  • Pixels do not represent fixed lengths, but depend
    instead on the size and resolution of the screen.
  • The exact size of what is produced varies from
    screen to screen.

29
More on setVisible
  • Method setVisible takes one argument of type
    boolean.
  • example
  • w.setVisible(true)
  • Method setVisible permits the programmer to
    specify when GUI objects should be displayed and
    when they should not.

30
Example Improved Swing Program
31
Programming Example
  • class FirstWindow

32
  • class FirstWindowDemo

33
Programming Example A Window with Color
  • We add four new features
  • a title
  • a local variable named contentPane
  • a background color
  • a new way to add the window listener

34
A Window with Color
35
  • class SecondWindow

36
  • class SecondWindowDemo

37
The Color Constants
Black Yellow Cyan Magenta
Red Green Blue
38
Methods of Class JFrame
39
Layout Managers
  • The objects that you add to a container class are
    arranged by an object known as a layout manager.
  • A layout manager is added using method setLayout,
    which is a method of every container class.
  • syntax
  • Container_Object.setLayout(new Layout_Manager_Clas
    s(Any_Parameters))

40
Border Layout
  • class BorderLayoutDemo

41
Border Layout, cont.
42
Border Layout, cont.
  • A BorderLayout manager can place a component into
    any of five regions.
  • Regions which are unused give up their space to
    BorderLayout.CENTER.

43
Flow Layout
  • The simplest layout manager is the FlowLayout
    manager.
  • Components are added and arranged one after
    another, left to right, until a row is filled.
    Then components are added to the next row in the
    same manner.
  • Each row is centered in its container.

44
Grid Layout
  • A GridLayout manager arranges components in a
    grid of rows and columns.
  • example
  • aContainer.setLayout(new
  • GridLayout(2,3))

45
Grid Layout, cont.
  • Each entry has the same size.
  • Rows are filled one at a time, top to bottom, and
    from left to right within each row.
  • Even though the number of columns is specified,
    the actual number of columns is determined by the
    number of items added to the container.

46
Default Layout Managers
  • When a default manager is not added explicitly, a
    default layout manager is provided.
  • The default manager for the content pane of a
    JFrame is BorderLayout.
  • The default manager for a JPanel is FlowLayout.

47
Layout Managers
  • Border Layout
  • Flow Layout
  • Grid Layout

arranged one after another, left to right
48
Buttons and Action Listeners Outline
  • Buttons
  • Action Listeners and Action Events
  • Interfaces
  • The Model-View-Controller Pattern

49
Buttons
  • A button is a GUI component that looks like a
    button and does something when it is clicked
    using a mouse.
  • Like a label, a button is created and added to a
    container.
  • Unlike a label, a button can fire an event and
    the event can cause a GUI to perform some action.

50
Adding Buttons
51
  • class ButtonDemo

52
Action Listeners and Action Events
  • For each button, the GUI needs to
  • register (specify) the listener object(s).
  • define the methods to be invoked when an event is
    fired.
  • For a statement such as
  • stopButton.addActionListener(this)
  • the class ButtonDemo is itself the listener
    class.

53
Action Listeners and Action Events, cont.
  • To make a class into an ActionListener
  • add implements ActionListener to the heading of
    the class definition
  • define a method named ActionPerformed.
  • register the ActionListener object with the
    component that will fire the event using the
    method addActionListener
  • (A component may register with more than one
    listener.)

54
Buttons and an Action Listener
55
The actionPerformed Method
  • An actionListener class must have a method named
    actionPerformed that has one parameter of type
    ActionEvent.
  • syntax
  • public void actionPerformed(ActionEvent e)
  • Code_for_Actions_Performed

56
Interfaces
  • An interface is a property of a class that states
    what methods the class must define.
  • ActionListener is an interface.
  • A class which satisfies the requirements of an
    interface implements the interface.
  • A class can define methods in addition to the
    methods required by the interface.
  • An interface is not a class, but it is a type.

57
Container Classes Outline
  • The JPanel Class
  • The Container Class

58
The JPanel Class
  • A GUI can be organized hierarchically, with
    window-like containers inside other window-like
    containers.
  • Class JPanel is a simple container that does
    little more than hold components.
  • Components can be placed in a JPanel which can be
    placed in another JPanel, which can be placed
    in a JFrame.

59
The JPanel Class
60
  • class PanelDemo

61
The Container Class
  • Class Container is a predefined class.
  • An object of a class which descends from class
    Container is called a container class and can
    have components added to it.
  • Class Jframe (Jpanel) is a descendent of class
    Container, permitting any Jframe(Jpanel) object
    to hold labels, buttons, panels, and other
    components.

62
The Container Class, cont.
  • (See Display 12.18 from page 879)

63
The JComponent Class
  • Class JComponent is similar to class Container,
    and plays a similar role for components.
  • Any class that descends from JComponent is called
    a JComponent class.
  • Any JComponent object can be added to any
    Container object.
  • Since class JComponent descends from class
    Container, a JComponent object can be added to
    another JComponent object.

64
Adding Components
  • To add a component to a JFrame, use method
    getContentPane to obtain the content pane, and
    the use method add with the content pane as the
    calling object.
  • example
  • Container contentPane getContentPane()
  • Jlabel label new Jlabel(Click Here)
  • contentPane.add(label)

65
Adding Components, cont.
  • For other container classes, add components by
    using method add directly with an object of the
    container class.
  • example
  • JPanel buttonPanel new JPanel()
  • JButton stopButton
  • new JButton(Stop)
  • buttonPanel.add(stopButton)

66
Objects in Swing Containers
  • Swing containers use three kinds of objects
  • the container class itself (such as a panel)
  • the components (labels, buttons, panels, etc.)
  • the layout manager.
  • Typically, a GUI interface, and many subparts of
    the GUI, will consist of these three kinds of
    objects.

67
Creating Simple Window Interfaces Guidelines
  • A typical GUI consists of a windowing object
    derived from class JFrame, together with
    components such as labels and buttons.
  • The programmer must register a window listener to
    close the window.
  • Components are grouped by placing them in a
    JPanel and by adding the JPanel to the GUI.

68
Creating Simple Window Interfaces Guidelines,
cont.
  • The GUI (i.e. the JFrame) and each JPanel should
    be given a layout manager.
  • The GUI (or some other class) needs to be made an
    action listener for components which generate
    events of interest.
  • Each such component should have an action
    listener registered with it, and an appropriate
    actionPerformed method defined.

69
Text I/O for GUIs Outline
  • Text Areas and Text Fields
  • Inputting and Outputting Numbers

70
Text Areas and Text Fields,
71
  • class MemoSaver

72
  • class MemoSaver, cont.

73
Text Areas and Text Fields,
  • Method getText returns the text written in an
    object of class JTextArea.
  • Method setText of class JTextArea changes the
    text in the text area into whatever is provided
    as the argument to method setText.
  • Class JTextField is similar to class JTextArea,
    but displays only one line of text.

74
Labeling a Text Field
75
  • class LabelDemo

76
Inputting and Outputting Numbers
  • Input provided using a JTextArea object or
    JTextField object is received as a string.
  • When numeric input is needed, the string must be
    converted to a number.
  • To output a number using a GUI constructed with
    Swing, the number must be converted to a string.
  • All input typed by the user is string output, and
    all displayed output is string output.

77
Inputting and Outputting Numbers, cont.
  • To convert a string to an integer, use, for
    example
  • Integer.parseInt(42)
  • or
  • Integer.parseInt(ioField.getText())
  • or, to eliminate whitespace before or
  • after the input, use
  • Integer.parseInt
  • (ioField.getText().trim())

78
Summary
  • You have learned the basics of event-driven
    programming.
  • You have designed and coded a simple GUI with
    buttons and text.
  • You have learned about several Swing-related
    classes.
Write a Comment
User Comments (0)
About PowerShow.com