Lecture 02 Object Oriented Programming - PowerPoint PPT Presentation

1 / 60
About This Presentation
Title:

Lecture 02 Object Oriented Programming

Description:

GUI event information is stored in an object of a class that extends AWTEvent. A program performs two key tasks. Event listener ... – PowerPoint PPT presentation

Number of Views:66
Avg rating:3.0/5.0
Slides: 61
Provided by: jaeki8
Learn more at: http://jsong.ba.ttu.edu
Category:

less

Transcript and Presenter's Notes

Title: Lecture 02 Object Oriented Programming


1
Lecture 09Abstract Windows Toolkit (AWT) and
Swing Components
2
Outline
  • GUI Interface
  • JAVA Graphics API
  • Event Handling
  • Layout Managers
  • JComponents

3
GUI Interface
  • Web-based application use a graphical user
    interface (GUI)
  • The graphical components are bundled in a library
    known as the Abstract Window Toolkit (AWT)
  • Mapped to the platform-specific components
  • Heavyweight components

4
Why swing?
  • The appearance and how the user interacts with
    the program are known as that programs look and
    feel.
  • javax.swing API makes the look and feel of GUI
    the same across platforms (lightweight component)

5
GUI
java.lang.Object
java.awt.Component
java.lang.Container
java.swing.JComponent
6
The Java Graphics API

Classes in the java.awt
AWTEvent



LayoutManager
package

Heavyweight


Fon
t

FontMetrics

Object

Color

Panel

Applet

JApplet

Graphics

Component

Container

Frame

Window

JFrame



Dialog

JDialog

JComponent

Swing Components

in the javax.swing package


Lightweight
7
Java Graphics API
  • Component
  • A superclass of all user interface classes
  • Container
  • Used to group components
  • A layout manager is used to position and place
    components in a container in the desired location
    and style
  • JComponent
  • A super class of all the lightweight
  • JFrame
  • This is a window nor contained inside another
    window
  • It is a container that holds another Swing
    user-interface components

8
Java Graphics API
  • Jdialog
  • A popup window or message box generally used as a
    temporary window to receive additional
    information from the user or to provide
    notification that an event has occurred
  • JApplet
  • A subclass of Applet
  • You must extend JApplet to create a Swing-based
    Java Applet
  • Jpanel
  • An invisible container that holds user-interface
    components
  • Panel can be nested

9
Java Graphics API
  • Graphics
  • An abstract class that provides a graphical
    context for drawing lines and simple shapes
  • Color
  • A class deals with the colors of graphics
    components
  • Font
  • Usef for drawings in Grphics
  • FontMetrics
  • An abstract class used to get the properties of
    the fonts used in drawings

10
Graphic Classes Classification
  • Container classes
  • JFrame, JPanel, and JApplet
  • Component classes
  • Subclasses of JComponent
  • JButton, JTextField, JTextArea, JComboBox, JList,
    JRadioButton, and JMenu
  • Helper classes
  • Classes used by components and containers to draw
    and place objects
  • Graphics, Color, Font, FontMetrics, Dimension,
    and Layout Managers

11
JComponent
.


JCheckBoxMenuItem

JMenuItem

JMenu

JButton

AbstractButton

.JRadioButtonMenuItem

.JToggleButton

JCheckBox

JRadioButton

JComponent

.JEditorPane

.JTextField

.JTextComponent

.JPasswordField

.JT
extArea

.JCo
mboBox

.JList

.JMenuBar

.JOptionPane

.JFileChooser

.JScrollBar

.JScrollPane

.JPanel

.JLabel

.JPopupMenu

.JPane

.JSeparator

.JSlider

.JTabbedPane

.JRootPane

.JProgressBar

.JSplitPane

.JTable

.JToolBar

.JTree

.JColorChooser

.JInternalFrame

.JLayeredPane

.JTableHeader

.JToolTip

12
Frames
  • Frame is a window that is not contained inside
    another window. Frame is the basis to contain
    other user interface components in Java graphical
    applications.
  • The Frame class can be used to create windows.

13
JFrame
  • Two constructors
  • public JFrame ( )
  • Creates an untitled JFrame object
  • public JFrame( String title)
  • Create a JFrame object with a specific title

14
JFrame Methods
  • setVisible (true)
  • The frame is not visible until setVisible (true)
    method is applied
  • setSize (int, int)
  • Specify the frame size
  • setDefaultCloseOperation (Jframe.EXIT_ON_CLOSE)
  • Tells the program to terminate when the frame is
    closed

15
Example Creating JFrame
import javax.swing. public class MyFrame
public static void main(String args)
JFrame frame new JFrame("Test Frame")
frame.setSize(400, 300) frame.setVisible(true
) frame.setDefaultCloseOperation(
JFrame.EXIT_ON_CLOSE)
16
Creating Frame
  • By default, a frame is displayed in the
    upper-left corner of the screen.
  • To display a frame at a specified location, you
    can use the setLocation(x, y) method in the
    JFrame class. This method places the upper-left
    corner of a frame at location (x, y).

17
Centering Frames

Screen

(x, y)

Frame

screenHeight

frameHeight

frameWidth

screenWidth

18
Centering Frames
  • Toolkit class
  • the abstract superclass of all actual
    implementations of the AWT
  • getScreenSize( )
  • Can be used to obtain screens width and height
  • Dimension class
  • Encapsulates the width and height of a component
  • get.Size method
  • Get the size of Dimension object
  • Return dimension of the object
  • JFrame
  • setLocation (x, y)

19
Example
  • CenterFrame

20
Event-Driven Programming
  • An event can be defined as a type of signal to
    the program that something has happened.
  • The event is generated by external user actions
    such as mouse movements, mouse button clicks, and
    keystrokes, or by the operating system, such as a
    timer
  • The GUI component on which an event is generated
    is called the source object
  • E.g.
  • A button is the source object for a
    clicking-button action event

21
Event Classes
22
Selected User Actions
Source Event TypeUser Action Object Generated Cl
icked on a button JButton ActionEvent Changed
text JTextComponent TextEvent Double-clicked on a
list item JList ActionEvent Selected or
deselected an item JList ItemEvent with a single
click Selected or deselected an
item JComboBox ItemEvent
23
Event Handling Model
  • GUI event information is stored in an object of a
    class that extends AWTEvent
  • A program performs two key tasks
  • Event listener
  • An object of a class that implements one or more
    the event-listener interface from package
    java.awt.event
  • Event handler
  • A method that is automatically called in response
    to a particular type of event

24
Event Handling Model
  • Each event-listener interface specifies one or
    more event handling methods that must be defined
    in the class that implements the event-listener
    interface
  • The use of event listeners is known as the
    delegation event model

25
The Delegation Model
26
Selected Event Handlers
Event Class Listener Interface Listener Methods
(Handlers)ActionEvent ActionListener actionPerfor
med(ActionEvent) ItemEvent ItemListener itemStateC
hanged(ItemEvent) WindowEvent WindowListener windo
wClosing(WindowEvent) windowOpened(WindowEvent)
windowIconified(WindowEvent) windowDeiconified
(WindowEvent) windowClosed(WindowEvent) window
Activated(WindowEvent) windowDeactivated(WindowE
vent)
  • Look at the handout

27
Inner Class
  • Classes can be defined inside other classes
  • Inner classes are used mainly in event handling
  • Inner classes with names have the file name
  • OuterClassNameInnerClassName.class

Public class A extends B public class
ActionEventHandler implements ActionLister publ
ic void actionPerformed ( ActionEvent
e)
28
Anonymous Inner Class
  • Anonymous inner class (class without a name)
  • Anonymous inner class have the file name
    OuterClassName.class
  • starts at 1 and is incremented for each
    anonymous inner class encountered during
    compilation

Window.addWindowListner( new WindowAdapter( )
public void windowClosing( WindowEvent
e) System.exit(0) )
29
JLabel
  • A subclass of Jcomponent
  • A label is a display area for a short text, an
    image, or both. The non-default constructors for
    labels are as follows
  • JLabel(String text, int horizontalAlignment)
  • JLabel(String text)
  • JLabel(Icon icon)
  • JLabel(Icon icon, int horizontalAlignment)

30
Text Components
  • Use text component when you want to both display
    and input information
  • JTextField
  • Allows only a single line of text
  • JTextArea
  • Allows multiple lines of text

31
JTextField
  • A text field is an input area where the user can
    type in characters.
  • Text fields are useful in that they enable the
    user to enter in variable data (such as a name or
    a description).
  • A text field can display information like a label

32
JTextField Constructors
  • JTextField(int columns)
  • Creates an empty text field with the specified
    number of columns.
  • JTextField txtName new JTextField (20)
  • JTextField(String text)
  • Creates a text field initialized with the
    specified text.
  • JTextField(String text, int columns)
  • Creates a text field initialized with the
    specified text and the column size.
  • JTextField (String, int maximumNumberCharaters)

33
JTextField Methods
  • getText()
  • Returns the string from the text field.
  • setText(String text)
  • Puts the given string in the text field.
  • setEditable(boolean editable)
  • Enables or disables the text field to be edited.
    By default, editable is true.
  • setColumns(int)
  • Sets the number of columns in this text field.
    The length of the text field is changeable.

34
JTextArea
  • If you want to let the user enter multiple lines
    of text, you cannot use text fields unless you
    create several of them. The solution is to use
    JTextArea, which enables the user to enter
    multiple lines of text.

35
JTextArea Constructors
  • JTextArea( )
  • Default constructor
  • Create an empty text area
  • JTextArea(int rows, int columns)
  • Creates a text area with the specified number of
    rows and columns.
  • JTextArea(String s, int rows, int columns)
  • Creates a text area with the initial text andthe
    number of rows and columns specified.

36
JTextArea Method
  • Append method
  • Allows to add information to the end of the
    string in a text area
  • Use append method to build your output as the
    information becomes available to create multiple
    lines of output
  • General Format
  • componentName.append(String)
  • Example
  • txaInovice.append(Sold to strName)

37
Container
  • The onscreen display area has a content pane to
    which the GUI components must be attached so they
    can be displayed at execution time
  • The content pane is an object of class Container
    from the java.awt package
  • Container c getContentPane()

38
JPanel
  • Panels act as smaller containers for grouping
    user interface components
  • JPanel p new JPanel()
  • Adding component to a JPanel
  • add method
  • E.g.
  • add(ComponentName)

39
JButton
  • A button is a component that triggers an action
    event when clicked. The following are JButton
    non-default constructors
  • JButton(String text)
  • JButton(String text, Icon icon)
  • JButton(Icon icon)
  • All button types are subclasses of AbstractButton
    from javax.swing package
  • Button types
  • Command buttons, check boxes, and radio buttons
  • A command button gegnerates an ActionEvent
  • When the user clicks the button with the mouse

40
Responding to Jbutton Event
  • public void actionPerformed(ActionEvent e)
  • // Get the button label
  • JoptionPane.showMessageDialog (null, You
    pressed

  • e.getActionCommnad() )

41
Layout Managers
  • Javas layout managers provide a level of
    abstraction to automatically map your user
    interface on all windowing systems.
  • The UI components are placed in containers. Each
    container has a layout manager to arrange the UI
    components within the container.
  • FlowLayout
  • GridLayout
  • BorderLayout
  • CardLayout
  • GridBagLayout

42
FlowLayout Manager
  • The components are arranged in the container from
    left to right in the order in which they were
    added. When one row becomes filled, a new row is
    started.
  • FlowLayout Constructors
  • public FlowLayout(int align, int hGap, int vGap)
  • Constructs a new FlowLayout with a specified
    alignment, horizontal gap, and vertical gap. The
    gaps are the distances inpixel between
    components.
  • public FlowLayout(int alignment)
  • Constructs a new FlowLayout with a specified
    alignment and a default gap of five pixels for
    both horizontal and vertical.
  • public FlowLayout()
  • Constructs a new FlowLayout with a default center
    alignment and a default gap of five pixelsfor
    both horizontal and vertical.

43
BorderLayout Manager
  • The BorderLayout manager divides the window into
    five areas East, South, West, North, and Center.
  • Components are added to a BorderLayout
  • add(Component, constraint), where constraint is
    BorderLayout.East, BorderLayout.South,
    BorderLayout.West", BorderLayout.North", or
    BorderLayout.Center.

44
GridLayout Manager
  • The GridLayout manager arranges components in a
    grid (matrix) formation with the number of rows
    and columns defined by the constructor. The
    components are placed in the grid from left to
    right starting with the first row, then the
    second, and so on.

45
GridLayout Constructors
  • public GridLayout(int rows, int columns)
  • Constructs a new GridLayout with the specified
    number of rows and columns.
  • public GridLayout(int rows, int columns, int
    hGap, int vGap)
  • Constructs a new GridLayout with the specified
    number of rows and columns, along with specified
    horizontal and vertical gaps between components.

46
Example
  • Tax Systems
  • Add List
  • Payroll Systems

47
JCheckBox
  • A check box is a component that enables the user
    to toggle a choice on or off, like a light
    switch.
  • JCheckBox constructors
  • JCheckBox(), JCheckBox(String text),
  • JCheckBox(String text, boolean selected),
  • JCheckBox(Icon icon), JCheckBox(String text, Icon
    icon)
  • JCheckBox(String text, Icon icon, boolean
    selected)
  • Requires using ItemListner
  • Provides for objects whose states change from
    true of false
  • Requires itemStateChanged( ) method
  • Example

48
JRadioButton
  • Radio buttons are variations of check boxes. They
    are often used in the group, where only one
    button is checked at a time.
  • JRadioButton constructors
  • JRadioButton(), JRadioButton(String text)
  • JRadioButton(String text, boolean selected),
    JRadioButton(Icon icon)
  • JRadioButton(String text, Icon icon)
  • JRadioButton(String text, Icon icon, boolean
    selected)
  • Example JRadioButton

49
JComboBox
  • A combo box is a simple list of items from which
    the user can choose. It performs basically the
    same function as a list, but can get only one
    value. To create a choice, use its default
    constructor
  • JComboBox()
  • Add items to the list with the addItem( ) method
  • JComboBox ( ) myChoice new JComboBox ( )
  • myChoice.addItem (English)
  • myChoice.addItem (Math)

50
JComboBox
  • JComboBox class method
  • String getItemAt (int) Returns the text of the
    list item at the index position specified by the
    integer argument
  • String getSelectedItem( ) returns the text of
    the currently selected item
  • Int getItemCount( ) returns the number of items
    in the list
  • Int getSelectedIndex( ) returns the item in the
    list that matches the given item
  • void setMaximumRowCount (int) sets the maximum
    number of combo box rows that are displayed at
    one time

51
JComboBox
  • Treat items as an array
  • Use the getSelectedIndex( ) method to determine
    the list position of the currently selected item
  • E.g.
  • String course English, History,
    Math
  • int choice myChoice.getSelectedIndex( )

52
JScrollPane
  • Common to add a JTextArea component
  • Constructors
  • JScrollPane( )
  • Creates where both horizontal and vertical
    scrollbars when needed
  • JScrollPane(Component)
  • Creates a JScrollPane that displays the contents
    of the specified component
  • E.g
  • JTextArea output new JTextArea( )
  • JScrollPane scroll new JScrollPane (output)

53
Menus
  • Java provides several classesJMenuBar, JMenu,
    JMenuItem, JCheckBoxMenuItem, and
    JRadioButtonMenuItem to implement menus in a
    frame
  • A JFrame or JApplet can hold a menu bar to which
    the pull-down menus are attached. Menus consist
    of menu items that the user can select (or toggle
    on or off). Menu bars can be viewed as a
    structure to support menus.

54
Menu Demo
55
The JMenuBar Class
  • A menu bar holds menus the menu bar can only be
    added to a frame. Following is the code to create
    and add a JMenuBar to a frame

JFrame f new JFrame() f.setSize(300,
200) f.setVisible(true) JMenuBar mb new
JMenuBar() f.setJMenuBar(mb)
56
The Menu Class
  • You attach menus onto a JMenuBar. The following
    code creates two menus, File and Help, and adds
    them to the JMenuBar mb

JMenu fileMenu new JMenu("File") JMenu
helpMenu new JMenu("Help") mb.add(fileMenu) mb
.add(helpMenu)
57
The JMenuItem Class
  • You add menu items on a menu. The following code
    adds menu items and item separators inmenu
    fileMenu

fileMenu.add(new JMenuItem("new")) fileMenu.add(n
ew JMenuItem("open")) fileMenu.add(new
JMenuItem("-")) fileMenu.add(new
JMenuItem("print")) fileMenu.add(new
JMenuItem("exit")) fileMenu.add(new
JMenuItem("-"))
58
Submenus
  • You can add submenus into menu items. The
    following code adds the submenus Unix, NT,
    and Win95 into the menu item Software.

JMenu softwareHelpSubMenu new
JMenu("Software") JMenu hardwareHelpSubMenu
new JMenu("Hardware") helpMenu.add(softwareHelpSu
bMenu) helpMenu.add(hardwareHelpSubMenu) softwar
eHelpSubMenu.add(new JMenuItem("Unix")) softwareH
elpSubMenu.add(new JMenuItem("NT")) softwareHelpS
ubMenu.add(new JMenuItem("Win95"))
59
Submenu Demo
Example
60
JPopupMenus
  • A subclass of JComponent
  • Provide options that are specific to the
    component for which the popup trigger event was
    generated
Write a Comment
User Comments (0)
About PowerShow.com