+ All Categories
Home > Documents > GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea...

GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea...

Date post: 18-Dec-2015
Category:
Upload: karen-richards
View: 221 times
Download: 0 times
Share this document with a friend
Popular Tags:
21
GUI and Swing, part 2 The illustrated edition
Transcript
Page 1: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

GUI and Swing, part 2

The illustrated edition

Page 2: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

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

Page 3: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

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

Page 4: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

Drawing pictures with Java

• Java’s 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

Page 5: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

Java screen coordinate system

Page 6: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

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

Page 7: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

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

Page 8: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

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

Page 9: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

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);

}}

Page 10: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

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)

Page 11: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

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

rectangle’s upper left corner– 3rd and 4th: width and length of figure

Page 12: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

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

Page 13: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

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

Page 14: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

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

Page 15: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

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

Page 16: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

Specifying an Arc (Part 1 of 2)

Page 17: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

Specifying an Arc (Part 2 of 2)

Page 18: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

The repaint() method

• The paint() method is called automatically when a window is made visible

• If changes need to be made to the window’s appearance, the window must be redrawn

• This operation is accomplished by the repaint() method

Page 19: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

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”);

Page 20: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

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

Page 21: GUI and Swing, part 2 The illustrated edition. Scroll bars As we have previously seen, a JTextArea has a fixed size, but the amount of text that can be.

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


Recommended