GUI and Swing, part 2 - PowerPoint PPT Presentation

About This Presentation
Title:

GUI and Swing, part 2

Description:

GUI and Swing, part 2. The illustrated edition. Scroll bars ... or JPanel) to enable the user to access all window contents via scroll bars. Scroll bars ... – PowerPoint PPT presentation

Number of Views:33
Avg rating:3.0/5.0
Slides: 22
Provided by: catesh
Category:
Tags: gui | part | scrollbars | swing

less

Transcript and Presenter's Notes

Title: GUI and Swing, part 2


1
GUI and Swing, part 2
  • The illustrated edition

2
Scroll bars
  • As we have previously seen, a JTextArea has a
    fixed size, but the amount of text that can be
    inserted is not fixed
  • As a result, some text may become invisible as
    the window is overfilled
  • A JScrollPane object can be added to a JTextArea
    (or JFrame or JPanel) to enable the user to
    access all window contents via scroll bars

3
Scroll bars
  • A JScrollPane is constructed using the text area
    (or other component) it applies to as its
    argument
  • JTextArea commentBox new JTextArea(50, 20)
  • JScrollPane viewBox new JScrollPane(commentBox)
  • The JScrollPane object can then be added to a
    JFrame or JPanel using the add method

4
Drawing pictures with Java
  • Javas Graphics class contains methods for
    drawing lines and simple geometric figures (e.g.
    rectangles, ellipses)
  • Figures can be hollow or filled with color
  • Drawings are created within the context of an X-Y
    coordinate system illustrated on the next slide

5
Java screen coordinate system
6
Java coordinate system and graphics objects
  • As the previous slide illustrates, the origin
    point (0,0) is in the upper lefthand corner of
    the screen (or Container, such as JFrame or
    JPanel)
  • The X axis is horizontal and the Y axis is
    vertical all values are positive
  • A figure, such as a rectangle or ellipse, has a
    bounding rectangle that indicates the borders in
    which it is drawn in the space
  • The upper left corner of this position and the
    size of the figure are specified in its
    constructor

7
Swing objects and the paint() method
  • Most Swing components include a paint() method,
    which is used to draw the component on the screen
  • This method is inherited from JComponent, an
    ancestor class for most of the Swing objects
  • As an inherited method, we have been able to use
    it (invisibly, since none of our code has called
    it directly) without modifying, or overriding the
    original version
  • In order to draw our own pictures, we will need
    to provide a new paint() definition, overriding
    the original

8
The paint() method
  • The paint method for an object is automatically
    invoked when the object is made visible there is
    almost never an explicit call to the method
  • The paint() method has a single parameter of type
    Graphics, typically named g
  • We use g to invoke the methods that draw pictures

9
Example
public class BlueSquare extends JFrame //
instance variables describe position size of
square private int x 20, y 40, size
100 // constructor not shown just sets size
location of JFrame public void paint (Graphics
g) g.setColor(Color.BLUE)
g.fillRect(x,y,size,size) public static
void main (String args) BlueSquare b new
BlueSquare() b.setVisible(true)
10
Example
  • The code from the previous slide (along with the
    constructor and main method) produces this
    result
  • The 100 x 100 pixel square is placed within a 140
    x 160 window with its upper left corner at
    position (20, 40)

11
Graphics drawing methods
  • Shape drawing methods include
  • drawRect rectangle outline
  • drawOval ellipse outline
  • fillRect filled rectangle
  • fillOval filled ellipse
  • Each takes four int arguments
  • 1st and 2nd x,y coordinates of bounding
    rectangles upper left corner
  • 3rd and 4th width and length of figure

12
Graphics drawing methods
  • drawRoundRect and fillRoundRect rectangles with
    rounded corners
  • First 4 arguments to these are the same as for
    the rectangle methods
  • 2 additional int arguments specify the width and
    height of the corner arcs

13
Graphics drawing methods
  • draw3DRect and fill3DRect rectangles with
    slightly raised edges
  • First 4 arguments same as other rectangles
  • Last argument is boolean
  • If true, the foreground color has the raised
    appearance with a small background color edge
  • If false, the background color is the raised
    part, with a small foreground color edge

14
Graphics drawing methods
  • drawLine draws a line between two points
    specified by 4 int arguments
  • 1st and 3rd arguments are the x coordinates
  • 2nd and 4th are the y coordinates

15
Graphics drawing methods
  • drawArc and fillArc draw partial ellipses within
    bounding rectangles each takes 6 int arguments
  • 1st and 2nd xy position of upper left corner of
    bounding rectangle
  • 3rd and 4th width and height of bounding
    rectangle
  • 5th start of drawing arc (number between 0 and
    359)
  • 6th sweep of drawing arc (number of degrees of
    arc sweep)
  • A positive sweep value draws arc in clockwise
    direction
  • A negative sweep value draws arc in
    counterclockwise direction

16
Specifying an Arc (Part 1 of 2)
17
Specifying an Arc (Part 2 of 2)
18
The repaint() method
  • The paint() method is called automatically when a
    window is made visible
  • If changes need to be made to the windows
    appearance, the window must be redrawn
  • This operation is accomplished by the repaint()
    method

19
Icons
  • An icon is a small picture, typically displayed
    as part of a GUI component such as a button, menu
    item, or label
  • In Java, an icon is an instance of the ImageIcon
    class, and is constructed with a digital picture
    file, such as a .gif or .jpg
  • Example
  • ImageIcon pic new ImageIcon(pic.gif)

20
Adding icons to GUI components
  • To add an icon to a JLabel, JButton or JMenuItem,
    you can use the setIcon method
  • JButton button new JButton()
  • button.setIcon(pic)
  • Alternatively, you can construct the component
    using an icon argument instead of String
    argument
  • JButton button new JButton(pic)
  • In both instances above, a String should be
    associated with the JButton by using the
    setActionCommand() method

21
Placing icons in a window
  • To use an existing drawing (as opposed to one you
    create yourself), you can use the paintIcon
    method of an ImageIcon object
  • The method takes 4 arguments
  • The component on which to paint the icon (e.g. a
    JPanel or JFrame)
  • A Graphics object
  • The x and y coordinates of the upper left corner
    of the bounding rectangle
Write a Comment
User Comments (0)
About PowerShow.com