Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

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

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 –1 st and 2 nd : x,y coordinates of bounding rectangle’s upper left corner –3 rd and 4 th : 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: –1 st and 3 rd arguments are the x coordinates –2 nd and 4 th are the y coordinates

15 Graphics drawing methods drawArc and fillArc: draw partial ellipses within bounding rectangles; each takes 6 int arguments: –1 st and 2 nd : xy position of upper left corner of bounding rectangle –3 rd and 4 th : width and height of bounding rectangle –5 th : start of drawing arc (number between 0 and 359) –6 th : 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 window’s 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


Download ppt "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."

Similar presentations


Ads by Google