Chapter 13 Java AWT - PowerPoint PPT Presentation

1 / 36
About This Presentation
Title:

Chapter 13 Java AWT

Description:

Having the class header declare itself as implementing the ActionListener interface ... add(ac); Programming Checkboxes. Program is declared with implements ... – PowerPoint PPT presentation

Number of Views:43
Avg rating:3.0/5.0
Slides: 37
Provided by: brucem94
Category:
Tags: awt | chapter | class | java

less

Transcript and Presenter's Notes

Title: Chapter 13 Java AWT


1
Chapter 13Java AWT Part II(Optional)
  • Lecture Slides to Accompany
  • An Introduction to Computer Science Using Java
    (2nd Edition)
  • by
  • S.N. Kamin, D. Mickunas, E. Reingold

2
Chapter Preview
  • In this chapter we will
  • discuss the use of Java in animating World Wide
    Web applications
  • show how to write Java applets
  • introduce Java graphical components (e.g.
    Textfields, Buttons, and Labels)
  • show how Java programs can be made to react to
    user actions on Java graphical components
  • show how Java applications can be run from inside
    web browsers

3
Frames
  • A frame is a window with a title bar and a border
  • The Frame class is a subclass of Container class
  • Container class objects may have other components
    (e.g. Buttons) added to them using the add method
  • A typical Java GUI will create and display one or
    more frames
  • To make a frame visible the message
    setVisbible(true) must be sent to the frame

4
Layout Managers
  • Governs how components are arranged inside a
    Container object
  • The Container method setLayout allows the
    programmer to specify which layout manager (e.g.
    FlowLayout) is desired for a particular container
    object
  • The size of a Container object should be set
    explicitly by the programmer as well
  • Can use pack() to set size to accommodate
    preferred sizes of components)

5
Frame Example
  • public class TwoButtons
  • Frame f
  • Button redButton, blueButton
  • public TwoButttons()
  • f new Frame(Two Buttons Frame)
  • redButton new Button(Red)
  • blueButton new Button(Blue)
  • f.setLayout(new Flowlayout())
  • f.add(redButton)
  • f.add(blueButton)
  • f.pack()
  • f.setVisible(true)

6
(No Transcript)
7
UML Notation
  • The filled diamond represents composition
  • This shows that the class TwoButtons contains a
    class Frame which contains a class Buttons
  • A good UML diagram only shows the classes and
    associations that are important to understanding
    the architecture
  • This UML diagram does not include super classes
    like Component or Container

8
Using Inheritance
  • It is possible to use inheritance to allow
    TwoButtons to become a frame in its own right
  • Note that the UML diagram will show TwoButtons as
    a subclass of Frame
  • You will need to use super()to set the frame title

9
(No Transcript)
10
Frame Inheritance Example
  • public class TwoButtons extends Frame
  • Button redButton, blueButton
  • public TwoButttons()
  • super(Two Buttons Frame)
  • redButton new Button(Red)
  • blueButton new Button(Blue)
  • f.setLayout(new Flowlayout())
  • f.add(redButton)
  • f.add(blueButton)
  • f.pack()
  • f.setVisible(true)

11
Other Simple Java Components
  • Label
  • contains some text that can be set using a
    constructor or the method setLabel
  • TextField
  • a box into which the user can type text
  • text can be edited (backspace, delete, etc.)
  • text can be retrieved using getText()
  • text can be set using setText()

12
Java AWT Event Model
  • Including reactive program components involves
  • Having the class header declare itself as
    implementing the ActionListener interface
  • Typically in the class constructor the class
    instance registers itself as being interested in
    listening for events from a newly created
    component
  • One method (e.g. actionPerformed) of the
    ActiveListener interface is defined

13
Frame Inheritance Example
  • public class classname extends Frame implements
    ActionListener
  • Button buttonname
  • public classname()
  • buttonname new Button(button label)
  • add(buttonname)
  • buttonname.ActionListener(this)
  • public void actionPerformed(ActionEvent e)
  • what to do when button is pushed

14
(No Transcript)
15
UML Notation for Button Program
  • Abstract class indicated by italicizing the class
    name
  • Implements association (concrete class) indicated
    by line with a closed arrowhead
  • UML stereotype (constructors, accessor, interface
    implementation methods) indicated by enclosing a
    descriptive word inside guillements ltlt gtgt

16
Closing the Window
  • You must implement the WindowListener and its
    seven required methods
  • windowActivated, windowClosed, windowClosing,
    windowDeactivated, windowIconified,
    windowDeiconified, windowOpened
  • This is usually done in a programmer defined
    class like ClosableFrame and all classes needing
    these services would extend ClosableFrame

17
(No Transcript)
18
Using Conditionals with Reactive Components
  • public void actionPerformed(ActionEvent e)
  • double fahr, cent
  • // check for user input in tFahr TextField
  • if (e.getSource() tFahr)
  • fahr new Double(tFahr.getText()),doubleValue
    ()
  • cent 5.0 (fahr 32.0) / 9.0
  • tCent.setText(cent ) // update tCent
    TextField
  • else
  • cent new Double(tCent.getText()),doubleValue
    ()
  • fahr 9.0 cent / 5.0 32.0
  • tFahr.setText(fahr )

19
Checkboxes
  • Used to allow user to select one or more items
  • Always has a label
  • Program often needs to react to the user
    selection(s)
  • Declaration example
  • Checkbox powerBrakes new Checkbox(Power
    Brakes)
  • Checkbox powerSteering new Checkbox(Power
    Steering)
  • Checkbox ac new Checkbox(Air Conditioning)
  • add(powerBrakes)
  • add(powerSteering)
  • add(ac)

20
Programming Checkboxes
  • Program is declared with implements ItemListener
  • Checkbox is registered by calling addItemListener
  • Event is handled using itemStateChanged argument
    type ItemEvent
  • The ItemEvent argument is used to tell which item
    triggered the event by calling getSource

21
Radio Buttons
  • A group of Checkboxes in which only one item can
    be selected at a time
  • Implemented using a Java CheckboxGroup
  • Items are declared initially as selected (true)
    or unselected (false)
  • Example
  • CheckboxGroup gender
  • Checkbox maleCheck
  • new Checkbox(Male, gender, true)
  • Checkbox femaleCheck
  • new Checkbox(Female, gender, true)

22
Processing Radio Buttons
  • public void compute()
  • boolean female
  • (gender.getSelectedCheckbox() femaleCheck)
  • if ((bodyMassIndex gt 27.8)
  • (female (bodyMassIndex gt 27.3))
  • lHigh.setText(This is considered high)
  • else
  • 1High.setText(this is not considered high)

23
Drawing in a Frame
  • To draw in a Frame you need to the override the
    frames paint method
  • public void paint(Graphics g)
  • Graphics objects are defined by the Java runtime
    system and are used for drawing operations
  • The Frame should be considered to be a grid with
    upper left coordinates (0,0) and positive
    coordinates (x,y) for the lower right

24
Typical Drawing Code
  • public class MyDrawing extends ClosableFrame
  • public MyDrawing()
  • public void paint(Graphics g)
  • g.drawLine()
  • g.drawImage()

25
Repaint and Update
  • The paint method requires an argument and
    actionPerformed does not know what to supply when
    called
  • The method repaint will clear the Frame and then
    call paint along with supplying the needed
    missing argument
  • You can prevent clearing the Frame when using
    repaint by overriding the method update before
    calling repaint

26
(No Transcript)
27
Panel and Canvas Classes
  • The Panel class is container subclass that is
    used to reserve a rectangular portion of a Frame
    to place other components
  • The Canvas class is not a Container subclass, but
    does allow you to reserve a portion of a Frame to
    draw in

28
Comparing Layout Managers
  • FlowLayout
  • Default frame layout
  • Components are placed on new line only when
    needed
  • GridLayout
  • Frame is declared as a grid of fixed size (e.g.
    two rows and three columns)
  • Components are placed in the grid left to right
    and top to bottom
  • BorderLayout
  • Frame is divided into north, south, east, west,
    and center
  • Components are placed by the programmer in the
    desired location using the add method

29
(No Transcript)
30
Typical GUI Frame
  • Panel p1 new Panel()
  • p1.setLayout(new GridLayout(2,1))
  • p1.add(component)
  • p1.add(component)
  • Panel p2 new Panel()
  • p2.setLayout()
  • p2.add(component)
  • setLayout(new BorderLayout())
  • add(North, p1)
  • add(Center, p2)

31
Scrollbars
  • The leftmost position of a horizontal scrollbar
    corresponds to some integer value and the
    rightmost position corresponds to a larger
    integer value
  • Scrollbars can be displayed vertically
  • User movement options
  • Clicking either end button causes bubble to move
    in unit increments
  • Clicking the are between bubble and end button
    causes movement in 10 unit increments
  • Clicking and dragging the bubble in the desired
    direction

32
Hypertext Markup LanguageHTML Skeleton
  • ltHTMLgt
  • ltHEADgt
  • ltTITLEgtPage Titlelt/TITLEgt
  • lt/HEADgt
  • ltBODYgt
  • Text and graphics to display in browser
  • lt/BODYgt
  • lt/HTMLgt

33
HTML Text Displays
  • Displays a centered heading in browser window
  • ltCENTERgt
  • ltH1gtNaploean Ilt/H1gt
  • lt/CENTERgt
  • To identify text paragraphs to be displayed
  • ltPgt
  • In my spare time I like to do origami
  • and spend quiet evenings at home with my wife
    Josephine.
  • lt/Pgt

34
HTML Using Pictures and Links
  • Displays a centered picture
  • ltCENTERgt
  • ltIMG SRCjojo.jpggt
  • lt/CENTERgt
  • To display a text link to another web page
  • ltA HREFjojo.htmlgtJosephinelt/Agt
  • To display a picture link to another web page
  • ltA HREFjojo.htmlgtltIMG SRCjojo.jpggtlt/Agt

35
Applet Tag and HTML
  • To include a Java applet as part of an HTML
    document
  • ltAPPLET CODEBodyMass.class WIDTH0 HEIGHT0gt
  • lt/APPLETgt
  • Java applet shell for BodyMass.class
  • import java.applet.
  • public class BodyMass extends Applet
  • public_html void start()
  • new BodyMass()

36
Transforming a Java Program into an Applet
  • Set the size you want the applet to be in the
    HTML file
  • Add the import statement to the Java code
    java.applet.
  • Change header from extends Frame to extends
    Applet
  • Change constructor heading to
  • public void start()
  • Eliminate any Java code that is meaningless in
    applets
Write a Comment
User Comments (0)
About PowerShow.com