Things to mention

eyelashesnectarineSoftware and s/w Development

Nov 3, 2013 (4 years and 6 months ago)

84 views

Things to mention


public static void main(String []
args
)


imports


comments


block comments /* … */


single
-
line comments //


javadoc

comments and tags (?) /** … */

CSE 115/503 Introduction to Computer Science for Majors I

1

Using the Java graphics classes


In this slide set we will explain the basics of
how to create graphical programs.


Some advanced issues will be glossed over
(e.g. thread safety, graphics library design).


In CSE116 we will revisit these and other
more advanced topics.


CSE 115/503 Introduction to Computer Science for Majors I

2

Graphical elements


There are two basic types of graphical
elements:


Containers


able to hold graphical objects, such as containers
and components


Components


must be put into containers


able to generate events when manipulated


CSE 115/503 Introduction to Computer Science for Majors I

3

Containers


Top
-
level containers


some containers are called “top
-
level” because they do
not need to be place inside any other containers


javax.swing.JFrame

is an example (
JDialog

and
JApplet

are others)



Other containers (not top
-
level)


most containers must be placed inside some other
container


javax.swing.JPanel

is an example

CSE 115/503 Introduction to Computer Science for Majors I

4

CSE 115/503 Introduction to Computer Science for Majors I

Adding
elements to a
JFrame


Top
-
level containers have multiple panes


Content pane is the one which holds
components


With
javax.swing.JFrame
, two ways:


call
getContentPane
()

on frame to get frame’s content
pane, then call
add(…)

on content pane to add a
component


call
add(…)

directly on the
JFrame

object


Second approach is just a convenience method, does the
same thing the first approach

5

CSE 115/503 Introduction to Computer Science for Majors I

Example


Creating just a frame


new
javax.swing.JFrame
()


Creating a frame with a
title


new
javax.swing.JFrame
(“My title”)


Making the frame
visible


call
setVisible
(true) on the frame


Making application close when window is closed:


call
setDefaultCloseOperation
(
JFrame.EXIT_ON_CLOSE
) on the frame


See code in:


the
BasicExample

class in the
graphics

package of the
GraphicsExamples

project in the repository, as well as,


the
ex_1_JFrame_visible

package in the
FA09
-
CSE115
-
SwingExamples

project in the repository.

6

CSE 115/503 Introduction to Computer Science for Majors I

A simple component


A
JLabel

is a component that can display
text or an image
.


It can also have a “tooltip”, a note that
appears when you hover the mouse pointer
over it, without clicking.


Look at
ex_2_JLabel_tooltip

7

CSE 115/503 Introduction to Computer Science for Majors I

Layout managers


First, let’s consider what
happens if we add
another
JLabel

to the content pane of the
JFrame
.


Look at
ex_3_JLabels_noLayout


This will show us the need to manage the
layout of components added to a container.


See also code in
GraphicsExamples

project
for this and the rest of the slides.


8

Applying a layout management strategy


Look at
ex_4_staticLayout



In this example we can apply one of four
different layout management strategies to a
set of seven
JLabels

that are added to the
JFrame’s

content pane.

CSE 115/503 Introduction to Computer Science for Majors I

9

CSE 115/503 Introduction to Computer Science for Majors I

Another
component: a
JButton


A
JButton

is a component which is typically
set up to react to clicks
.


Look at
ex_5_JButton_noEventHandler
,
this example just shows a
JButton
.

10

Events


Clicks on buttons, mouse movements, etc.
are all considered events.


A program can react to events by setting up
event handlers.


An event handler defines what should
happen when a particular event occurs.

CSE 115/503 Introduction to Computer Science for Majors I

11

CSE 115/503 Introduction to Computer Science for Majors I

Event handling


1


The component which gives rise to an event is
decoupled from the part of the code that handles
the event
.


This is called the
observer pattern
.


We have seen this over the past few lectures. A
bit of review never hurt :
-
)


General
form:


www.research.ibm.com/designpatterns/example.htm

12

CSE 115/503 Introduction to Computer Science for Majors I

Event handling


2


Observer pattern in Java


An observer is called a listener in Java


Button clicks are “ActionEvents”.


Handlers for ActionEvents are ActionListeners.


An event
-
generator can have many listeners


Use “addActionListener” method to register a listener
with a component

13

CSE 115/503 Introduction to Computer Science for Majors I

Event
handling for a
JButton


Look
at
ex_6_JButton_eventHandler


In this example an event handler is defined
and attached to the
JButton
.


14

CSE 115/503 Introduction to Computer Science for Majors I

Putting it all together


Look
at
ex_7_dynamicLayoutEventHandling



In this example we put everything together:


different components are put into different containers


multiple components are put into each container


different layout managers can be applied dynamically


JButtons
’ event handlers select and apply different
layout managers to the container containing
JLabels

15