Unformatted text preview:

Java GUI building with the AWT AWT Abstract Window Toolkit Present in all Java implementations Described in most Java textbooks Adequate for many applications Uses the controls defined by your OS therefore it s least common denominator Difficult to build an attractive GUI import java awt import java awt event 2 Swing Same concepts as AWT Doesn t work in ancient Java implementations Java 1 1 and earlier Many more controls and they are more flexible Some controls but not all are a lot more complicated Gives a choice of look and feel packages Much easier to build an attractive GUI import javax swing 3 Swing vs AWT Swing is bigger slower and more complicated Swing is more flexible and better looking Swing and AWT are incompatible you can use either but you can t mix them But not as slow as it used to be Actually you can but it s tricky and not worth doing Learning the AWT is a good start on learning Swing Many of the most common controls are just renamed AWT Button b new Button OK Swing JButton b new JButton OK 4 To build a GUI Make somewhere to display things usually a Frame or Dialog for an application or an Applet Create some Components such as buttons text areas panels etc Add your Components to your display area Arrange or lay out your Components Attach Listeners to your Components Interacting with a Component causes an Event to occur A Listener gets a message when an interesting event occurs and executes some code to deal with it 5 Containers and Components The job of a Container is to hold and display Components Some common subclasses of Component are Button Checkbox Label Scrollbar TextField and TextArea A Container is also a Component This allows Containers to be nested Some Container subclasses are Panel and Applet Window and Frame 6 An Applet is Panel is a Container java lang Object java awt Component java awt Container java awt Panel java applet Applet so you can display things in an Applet 7 Example A Life applet Container Applet Containers Panels Component Canvas Components Buttons Components TextFields Components Labels 8 Applets An application has a public static void main String args method but an Applet usually does not An Applet s main method is in the Browser To write an Applet you extend Applet and override some of its methods The most important methods are init start and paint Graphics g 9 To create an applet public class MyApplet extends Applet this is the only way to make an Applet You can add components to the applet The best place to add components is in init You can paint directly on the applet but it s better to paint on a contained component Do all painting from paint Graphics g 10 Some types of components Button Label Scrollba r Choice TextFiel d Checkbox List TextArea Button Checkbo x CheckboxGrou p 11 Creating components Label lab new Label Hi Dave Button but new Button Click me Checkbox toggle new Checkbox toggle TextField txt new TextField Initial text 20 Scrollbar scrolly new Scrollbar Scrollbar HORIZONTAL initialValue bubbleSize minValue maxValue 12 Adding components to the Applet class MyApplet extends Applet public void init add lab same as this add lab add but add toggle add txt add scrolly 13 Creating a Frame When you create an Applet you get a Panel for free When you write a GUI for an application you need to create and use a Frame Frame frame new Frame frame setTitle My Frame frame setSize 300 200 width height add components frame setVisible true Or class MyClass extends Frame setTitle My Frame in some instance method 14 Arranging components Every Container has a layout manager The default layout for a Panel is FlowLayout An Applet is a Panel Therefore the default layout for a Applet is FlowLayout You could set it explicitly with setLayout new FlowLayout You could change it to some other layout manager 15 FlowLayout Use add component to add to a component when using a FlowLayout Components are added left to right If no room a new row is started Exact layout depends on size of Applet Components are made as small as possible FlowLayout is convenient but often ugly 16 Complete example FlowLayout import java awt import java applet public class FlowLayoutExample extends Applet public void init setLayout new FlowLayout default add new Button One add new Button Two add new Button Three add new Button Four add new Button Five add new Button Six 17 BorderLayout At most five components can be added If you want more components add a Panel then add components to it setLayout new BorderLayout add new Button NORTH BorderLayout NORTH 18 BorderLayout with five Buttons public void init setLayout new BorderLayout add new Button NORTH BorderLayout NORTH add new Button SOUTH BorderLayout SOUTH add new Button EAST BorderLayout EAST add new Button WEST BorderLayout WEST add new Button CENTER BorderLayout CENTER 19 Complete example BorderLayout import java awt import java applet public class BorderLayoutExample extends Applet public void init setLayout new BorderLayout add new Button One BorderLayout NORTH add new Button Two BorderLayout WEST add new Button Three BorderLayout CENTER add new Button Four BorderLayout EAST add new Button Five 20 Using a Panel Panel p new Panel add p BorderLayout SOUTH p add new Button Button 1 p add new Button Button 2 21 GridLayout The GridLayout manager divides the container up into a given number of rows and columns new GridLayout rows columns All sections of the grid are equally sized and as large as possible 22 Complete example GridLayout import java awt import java applet public class GridLayoutExample extends Applet public void init setLayout new GridLayout 2 3 add new Button One add new Button Two add new Button Three add new Button Four add new Button Five 23 Making components active Most components already appear to do something buttons click text appears To associate an action with a component attach a listener to it Components send events listeners listen for events Different components may send different events and require different listeners 24 Listeners Listeners are interfaces not classes class MyButtonListener implements ActionListener An interface is a group of methods that must be supplied When you say implements you are promising to supply those methods 25 Writing a Listener For a Button you need an ActionListener b1 addActionListener new MyButtonListener An ActionListener must have an actionPerformed ActionEvent method public void actionPerformed ActionEvent e 26 MyButtonListener public void init b1


View Full Document

Penn CIT 591 - GUI building with the AWT

Documents in this Course
Stacks

Stacks

11 pages

Arrays

Arrays

30 pages

Arrays

Arrays

29 pages

Applets

Applets

24 pages

Style

Style

33 pages

JUnit

JUnit

23 pages

Java

Java

32 pages

Access

Access

18 pages

Methods

Methods

29 pages

Arrays

Arrays

32 pages

Methods

Methods

9 pages

Methods

Methods

29 pages

Vectors

Vectors

14 pages

Eclipse

Eclipse

23 pages

Vectors

Vectors

14 pages

Recursion

Recursion

24 pages

Animation

Animation

18 pages

Animation

Animation

18 pages

Static

Static

12 pages

Eclipse

Eclipse

23 pages

JAVA

JAVA

24 pages

Arrays

Arrays

29 pages

Animation

Animation

18 pages

Numbers

Numbers

21 pages

JUnit

JUnit

23 pages

Access

Access

18 pages

Applets

Applets

24 pages

Methods

Methods

30 pages

Buttons

Buttons

20 pages

Java

Java

31 pages

Style

Style

28 pages

Style

Style

28 pages

Load more
Loading Unlocking...
Login

Join to view GUI building with the AWT and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view GUI building with the AWT and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?