java swing. introduction to swing a gui (graphical user interface) is a windowing system that...

101
Java Swing

Upload: abigail-shelton

Post on 24-Dec-2015

238 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Java Swing

Page 2: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Introduction to Swing• A GUI (graphical user interface) is a windowing system that

interacts with the user

• The Java AWT (Abstract Window Toolkit) package is the original Java package for doing GUIs

• The Swing package is an improved version of the AWT– However, it does not completely replace the AWT– Some AWT classes are replaced by Swing classes, but other AWT

classes are needed when using Swing• Swing GUIs are designed using a form of object-oriented

programming known as event-driven programming

Page 3: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Events

• Event-driven programming is a programming style that uses a signal-and-response approach to programming

• An event is an object that acts as a signal to another object know as a listener

• The sending of an event is called firing the event– The object that fires the event is often a GUI component,

such as a button that has been clicked

Page 4: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Listeners

• A listener object performs some action in response to the event– A given component may have any number of

listeners– Each listener may respond to a different kind of

event, or multiple listeners may respond to the same events

Page 5: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Exception Objects

• Where have we seen this “Even-Driven” programming before?

• An exception object is an event– The throwing of an exception is an example of firing

an event

• The listener for an exception object is the catch block that catches the event

Page 6: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Event Handlers

• A listener object has methods that specify what will happen when events of various kinds are received by it– These methods are called event handlers

• The programmer using the listener object will define or redefine these event-handler methods

Page 7: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Event Firing and an Event Listener

Page 8: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Event-Driven Programming

• Event-driven programming is very different from most programming seen up until now– So far, programs have consisted of a list of statements

executed in order– When that order changed, whether or not to perform

certain actions (such as repeat statements in a loop, branch to another statement, or invoke a method) was controlled by the logic of the program

Page 9: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Event-Driven Programming

• In event-driven programming, objects are created that can fire events, and listener objects are created that can react to the events

• The program itself no longer determines the order in which things can happen– Instead, the events determine the order

Page 10: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Event-Driven Programming

• In an event-driven program, the next thing that happens depends on the next event (e.g., which button or menu will be selected by the user)

• In particular, methods are defined that will never be explicitly invoked in any program– Instead, methods are invoked automatically when an event

signals that the method needs to be called

Page 11: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A SIMPLE WINDOW

Page 12: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A First Swing Demonstration (Part 4 of 4)

Page 13: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A Simple Window• A simple window can consist of an object of the JFrame

class– A JFrame object includes a border and the usual three buttons for

minimizing, changing the size of, and closing the window– The JFrame class is found in the javax.swing package

JFrame firstWindow = new JFrame();

• A JFrame can have components added to it, such as buttons, menus, and text labels– These components can be programmed for action

firstWindow.add(endButton);– It can be made visible using the setVisible method

firstWindow.setVisible(true);

Page 14: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A First Swing Demonstration (Part 1 of 4)

Create a JFrame object

Page 15: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A First Swing Demonstration (Part 1 of 4)

Set window size with numbers of pixels

Page 16: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Pixels and the Relationship between Resolution and Size

• A pixel is the smallest unit of space on a screen– Both the size and position of Swing objects are measured in

pixels– The more pixels on a screen, the greater the screen resolution

• A high-resolution screen of fixed size has many pixels– Therefore, each one is very small

• A low-resolution screen of fixed size has fewer pixels– Therefore, each one is much larger

• Therefore, a two-pixel figure on a low-resolution screen will look larger than a two-pixel figure on a high-resolution screen

Page 17: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A First Swing Demonstration (Part 2 of 4)

Create a button object with text

Page 18: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A First Swing Demonstration (Part 2 of 4)

Add the button to the JFrame object

Page 19: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Buttons

• A button object is created from the class JButton and can be added to a JFrame– The argument to the JButton constructor is the string

that appears on the button when it is displayed

JButton endButton = new JButton("Click to end program.");firstWindow.add(endButton);

Page 20: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A First Swing Demonstration (Part 2 of 4)

Associate an Even Lister

Page 21: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A First Swing Demonstration (Part 3 of 4)

Define Even Listener

Page 22: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A First Swing Demonstration (Part 2 of 4)

Make the JFrame object visible

Page 23: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Pitfall: Forgetting to Program the Close-Window Button

• The following lines from the FirstSwingDemo program ensure that when the user clicks the close-window button, nothing happensfirstWindow.setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE);

• If this were not set, the default action would be JFrame.HIDE_ON_CLOSE– This would make the window invisible and inaccessible, but

would not end the program– Therefore, given this scenario, there would be no way to click

the "Click to end program" button• Note that the close-window and other two

accompanying buttons are part of the JFrame object, and not separate buttons

Page 24: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Change a few places and see what will happen?

Page 25: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Action Listeners and Action Events• Clicking a button fires an event• The event object is "sent" to another object called a listener

– This means that a method in the listener object is invoked automatically

– Furthermore, it is invoked with the event object as its argument• In order to set up this relationship, a GUI program must do

two things1. It must specify, for each button, what objects are its listeners, i.e., it

must register the listeners2. It must define the methods that will be invoked automatically when

the event is sent to the listener

Page 26: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A First Swing Demonstration (Part 3 of 4)

Define Even Listener

Page 27: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Action Listeners and Action Events

EndingListener buttonEar = new EndingListener();endButton.addActionListener(buttonEar);

• Above, a listener object named buttonEar is created and registered as a listener for the button named endButton– Note that a button fires events known as action events,

which are handled by listeners known as action listeners

Page 28: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Action Listeners and Action Events

• Different kinds of components require different kinds of listener classes to handle the events they fire

• An action listener is an object whose class implements the ActionListener interface– The ActionListener interface has one method

heading that must be implementedpublic void actionPerformed(ActionEvent e)

Page 29: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Action Listeners and Action Eventspublic void actionPerformed(ActionEvent e){ System.exit(0);}

• The EndingListener class defines its actionPerformed method as above– When the user clicks the endButton, an action event is sent

to the action listener for that button– The EndingListener object buttonEar is the action

listener for endButton– The action listener buttonEar receives the action event as

the parameter e to its actionPerformed method, which is automatically invoked

– Note that e must be received, even if it is not used

Page 30: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Pitfall: Changing the Heading for actionPerformed

• When the actionPerformed method is implemented in an action listener, its header must be the one specified in the ActionListener interface– It is already determined, and may not be changed– Not even a throws clause may be addedpublic void actionPerformed(ActionEvent e)

• The only thing that can be changed is the name of the parameter, since it is just a placeholder– Whether it is called e or something else does not matter, as long as it

is used consistently within the body of the method

Page 31: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A Better Version of the Previous indow

Page 32: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The Normal Way to Define a JFrame (Part 1 of 4)

Page 33: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The Normal Way to Define a JFrame (Part 2 of 4)

Page 34: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The Normal Way to Define a JFrame (Part 3 of 4)

Page 35: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The Normal Way to Define a JFrame (Part 4 of 4)

Page 36: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

What Can be Summarized?Derive a new container class from, say, JFrame

In the derived classAdd the interface objects, such as buttons and othersAssociate a listener object for each interface object

Define listener classes to handle possible events fired by the interface objects added in the window

In the main function Create the object of the derived window class Define a constructor that sets up the title and size of the windowLaunch the interface by setting it as visible

Page 37: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Labels

• A label is an object of the class JLabel– Text can be added to a JFrame using a label– The text for the label is given as an argument when the JLabel is created

– The label can then be added to a JFrameJLabel greeting = new JLabel("Hello");add(greeting);

Page 38: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Color• In Java, a color is an object of the class Color

– The class Color is found in the java.awt package– There are constants in the Color class that represent a number of

basic colors

• JFrame can not be colored directly – Instead, a program must color something called the content pane of

the JFrame– Since the content pane is the "inside" of a JFrame, coloring the

content pane has the effect of coloring the inside of the JFrame– Therefore, the background color of a JFrame can be set using the

following code:getContentPane().setBackground(Color);

Page 39: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A JFrame with Color (Part 4 of 4)

Page 40: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The Color Constants

The color can be customized…

Page 41: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A JFrame with Color (Part 1 of 4)

Page 42: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A JFrame with Color (Part 2 of 4)

Page 43: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A JFrame with Color (Part 3 of 4)

Page 44: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

LAYOUT MANAGER

Page 45: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Layout Examples

Page 46: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Containers and Layout Managers

• Multiple components can be added to the content pane of a JFrame using the add method– However, the add method does not specify how these

components are to be arranged

• To describe how multiple components are to be arranged, a layout manager (awt) is used– There are a number of layout manager classes such as BorderLayout, FlowLayout, and GridLayout

– If a layout manager is not specified, a default layout manager is used (e.g., only one widget on the interface)

Page 47: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Flow Layout Managers• The FlowLayout manager is the simplest layout

managersetLayout(new FlowLayout());– It arranges components one after the other, going from left

to right– Components are arranged in the order in which they are

added• Since a location is not specified, the add method has

only one argument when using the FlowLayoutManageradd.(label1);

Page 48: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Border Layout Managers

• A BorderLayout manager places the components that are added to a JFrame object into five regions– These regions are: BorderLayout.NORTH, BorderLayout.SOUTH, BorderLayout.EAST, BorderLayout.WEST, and BorderLayout.Center

• A BorderLayout manager is added to a JFrame using the setLayout method– For example:

setLayout(new BorderLayout());

Page 49: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The BorderLayout Manager (Part 1 of 4)

Page 50: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The BorderLayout Manager (Part 2 of 4)

Page 51: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The BorderLayout Manager (Part 3 of 4)

Page 52: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The BorderLayout Manager (Part 4 of 4)

Page 53: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

BorderLayout Regions

Page 54: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Border Layout Managers• The previous diagram shows the arrangement of the five

border layout regions– Note: None of the lines in the diagram are normally visible

• When using a BorderLayout manager, the location of the component being added is given as a second argument to the add methodadd(label1, BorderLayout.NORTH);– Components can be added in any order since their location is specified

Page 55: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

• A GridLayout manager arranges components in a two-dimensional grid with some number of rows and columnssetLayout(new GridLayout(rows, columns));– Each entry is the same size– The two numbers given as arguments specify the number of rows and

columns– Each component is stretched so that it completely fills its grid position

– Note: None of the lines in the diagram are normally visible

Grid Layout Managers

Page 56: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Grid Layout Managers• When using the GridLayout class, the method add has only one argumentadd(label1);– Items are placed in the grid from left to right– The top row is filled first, then the second, and so forth– Grid positions may not be skipped

• Note the use of a main method in the GUI class itself in the following example– This is often a convenient way of demonstrating a class

Page 57: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The GridLayout Manager (Part 1 of 4)

Page 58: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The GridLayout Manager (Part 2 of 4)

Page 59: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The GridLayout Manager (Part 3 of 4)

Page 60: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The GridLayout Manager (Part 4 of 4)

Page 61: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Some Layout Managers

Page 62: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

What Can be Summarized?Derived a new container class from, say, JFrame

In the derived class• Define a constructor that sets up the title and size of the window• Set up the proper layout of the widgets• Add the interface objects, such as buttons and others• Remember to associate a listener object for each interface object

Define listener classes to handle possible events fired by the interface objects added in the window

In the main function• Create the object of the derived window class• Launch the interface by setting it as visible (you can do it in the

constructor of the customized Frame as well)

Page 63: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Layout Summary

Page 64: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Action Listeners and Action Events

• Different kinds of components require different kinds of listener classes to handle the events they fire

• An action listener is an object whose class implements the ActionListener interface– The ActionListener interface has one method

heading that must be implementedpublic void actionPerformed(ActionEvent e){ //TODO}

Page 65: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Action Listeners and Action Events

• To use the customized action listener class, you need to create a listener object first, e.g.,

EndingListener buttonEar = new EndingListener();

• Then, associate this listener with the specific component object, e.g.,

endButton.addActionListener(buttonEar);

Page 66: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The setActionCommand Method

• When a user clicks a button or menu item, an event is fired that normally goes to one or more action listeners– The action event becomes an argument to an actionPerformed

method– This action event includes a String instance variable called the

action command for the button or menu item– The default value for this string is the string written on the button or

the menu item– This string can be retrieved with the getActionCommand method

e.getActionCommand()

Page 67: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The setActionCommand Method

• The setActionCommand method can be used to change the action command for a component– This is especially useful when two or more buttons or

menu items have the same default action command stringsJButton nextButton = new JButton("Next");nextButton.setActionCommand("Next Button");

JMenuItem choose = new JMenuItem("Next");choose.setActionCommand("Next Menu Item");

Page 68: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Listeners as Inner Classes

• Often, instead of having one action listener object deal with all the action events in a GUI, a separate ActionListener class is created for each button or menu item– Each button or menu item has its own unique action

listener– There is then no need for a multiway if-else statement

• When this approach is used, each class is usually made a private inner class

Page 69: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

PANNEL

Page 70: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Panel Examples

Page 71: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Panels• A GUI is often organized in a hierarchical fashion,

with containers called panels inside other containers

• A panel is an object of the JPanel class that serves as a simple container– It is used to group smaller objects into a larger component

(the panel)– One of the main functions of a JPanel object is to

subdivide a JFrame or other container

Page 72: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Panels• Both a JFrame and each panel in a JFrame can use

different layout managers– Additional panels can be added to each panel, and each panel

can have its own layout manager– This enables almost any kind of overall layout to be used in a GUI

setLayout(new BorderLayout());JPanel somePanel = new JPanel();somePanel.setLayout(new FlowLayout());

• Note in the following example that panel and button objects are given color using the setBackground method without invoking getContentPane– The getContentPane method is only used when adding color

to a JFrame

Page 73: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Using Panels (Part 7 of 8)

Page 74: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Using Panels (Part 8 of 8)

Page 75: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Using Panels (Part 1 of 8)

Page 76: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Using Panels (Part 2 of 8)

Page 77: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Using Panels (Part 3 of 8)

Page 78: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Using Panels (Part 4 of 8)

Page 79: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Using Panels (Part 5 of 8)

Page 80: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Using Panels (Part 6 of 8)

Page 81: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The panels with borderlines example

Page 82: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The Container Class• Any class that is a descendent class of the class Container is

considered to be a container class– The Container class is found in the java.awt package, not in the

Swing library

• Any object that belongs to a class derived from the Container class (or its descendents) can have components added to it

• The classes JFrame and JPanel are descendent classes of the class Container– Therefore they and any of their descendents can serve as a container

Page 83: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

The JComponent Class

• Any descendent class of the class JComponent is called a component class– Any JComponent object or component can be

added to any container class object– Because it is derived from the class Container,

a JComponent can also be added to another JComponent

Page 84: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Objects in a Typical GUI

• Almost every GUI built using Swing container classes will be made up of three kinds of objects:

1. The container itself, probably a panel or window-like object

2. The components added to the container such as labels, buttons, and panels

3. A layout manager to position the components inside the container

Page 85: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Hierarchy of Swing and AWT Classes

Page 86: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Tip: Code a GUI's Look and Actions Separately

• The task of designing a Swing GUI can be divided into two main subtasks:

1. Designing and coding the appearance of the GUI on the screen2. Designing and coding the actions performed in response to user

actions

• In particular, it is useful to implement the actionPerformed method as a stub, until the GUI looks the way it shouldpublic void actionPerformed(ActionEvent e){}

Page 87: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

What Can be Summarized?Derived a new container class from, say, JFrame

In the derived class• Define a constructor that sets up the title and size of the window• Set up the proper lay out of the outer container• Create inner containers• Set up the proper lay out of each inner containers• Add the interface objects, such as buttons and others, to the

corresponding containers• Remember to associate a listener object for each interface object• Add the containers to the Frame object in order

Define listener classes to handle possible events fired by the interface objects added in the window

In the main function• Create the object of the derived window class• Launch the interface by setting it as visible

Page 88: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

MENU

Page 89: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Menu Examples

Page 90: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Menu Bars, Menus, and Menu Items

• A menu is an object of the class JMenu• A choice on a menu is called a menu item, and is an

object of the class JMenuItem– A menu can contain any number of menu items– A menu item is identified by the string that labels it, and

is displayed in the order to which it was added to the menu

• The add method is used to add a menu item to a menu in the same way that a component is added to a container object

Page 91: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Menu Bars, Menus, and Menu Items

• The following creates a new menu, and then adds a menu item to itJMenu diner = new JMenu("Daily Specials");JMenuItem lunch = new JMenuItem("Lunch Specials");lunch.addActionListener(this);diner.add(lunch);– Note that the this parameter has been registered as

an action listener for the menu item

Page 92: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Nested Menus

• The class JMenu is a descendent of the JMenuItem class– Every JMenu can be a menu item in another

menu– Therefore, menus can be nested

• Menus can be added to other menus in the same way as menu items

Page 93: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

Menu Bars and JFrame• A menu bar is a container for menus, typically placed near

the top of a windowing interface

• The add method is used to add a menu to a menu bar in the same way that menu items are added to a menuJMenuBar bar = new JMenuBar();bar.add(diner);

• The menu bar can be added to a JFrame in two different ways1. Using the setJMenuBar method

setJMenuBar(bar);2. Using the add method – which can be used to add a menu bar to a

JFrame or any other container

Page 94: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A GUI with a Menu (Part 7 of 8)

Page 95: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A GUI with a Menu (Part 8 of 8)

Page 96: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A GUI with a Menu (Part 1 of 8)

Page 97: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A GUI with a Menu (Part 2 of 8)

Page 98: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A GUI with a Menu (Part 3 of 8)

Page 99: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A GUI with a Menu (Part 4 of 8)

Page 100: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A GUI with a Menu (Part 5 of 8)

Page 101: Java Swing. Introduction to Swing A GUI (graphical user interface) is a windowing system that interacts with the user The Java AWT (Abstract Window Toolkit)

A GUI with a Menu (Part 6 of 8)