jframe jcomponent jframe jcomponent jframe jcomponent

28
Lecture 19 COP3502: Introduction to CIS I

Upload: cornelia-powell

Post on 17-Dec-2015

255 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: JFrame JComponent JFrame JComponent JFrame JComponent

Lecture 19COP3502: Introduction to CIS I

Page 2: JFrame JComponent JFrame JComponent JFrame JComponent

java swing

Page 3: JFrame JComponent JFrame JComponent JFrame JComponent

java swingimport javax.swing.*;

Page 4: JFrame JComponent JFrame JComponent JFrame JComponent

JFrame

Page 5: JFrame JComponent JFrame JComponent JFrame JComponent

JFrameJComponent

Page 6: JFrame JComponent JFrame JComponent JFrame JComponent

JFrameJComponent

Page 7: JFrame JComponent JFrame JComponent JFrame JComponent

JFrameJComponent

Page 8: JFrame JComponent JFrame JComponent JFrame JComponent

JComponents

JPanelJLabelJSlider

JScrollBarJPopupMenu

JMenuBar…. many more!

Page 9: JFrame JComponent JFrame JComponent JFrame JComponent
Page 10: JFrame JComponent JFrame JComponent JFrame JComponent

JComponents are abstract

Add functionality by creating subclass of a JComponent

public class MySuperAwesomePanel extends JPanel {

// Panel functionality}

Page 11: JFrame JComponent JFrame JComponent JFrame JComponent

nested classes

classes declared within the body of another class

“private static class”

good for managing many small classes that make up a larger class

Page 12: JFrame JComponent JFrame JComponent JFrame JComponent

window organization

Page 13: JFrame JComponent JFrame JComponent JFrame JComponent

graphicsimport java.awt.Graphics;

Page 14: JFrame JComponent JFrame JComponent JFrame JComponent

graphicsimport java.awt.Graphics;

1. contains all the information related to drawing graphics

eg. Background and foreground colors, location, dimensions

Page 15: JFrame JComponent JFrame JComponent JFrame JComponent

graphicsimport java.awt.Graphics;

1. contains all the information related to drawing graphics

eg. Background and foreground colors, location, dimensions

2. contains methods for actually drawing graphics to screen

eg. Shapes, text, and images

Page 16: JFrame JComponent JFrame JComponent JFrame JComponent

graphicsimport java.awt.Graphics;

Graphics is an abstract classYou cannot instantiate a Graphics object on your

own

typically created by the JComponent and given to the component’s paint() or paintComponent() method

Page 17: JFrame JComponent JFrame JComponent JFrame JComponent

paintComponent(Graphics g)

inherited from a JComponent

does nothing on its own

YOU must override and provide implementation

Page 18: JFrame JComponent JFrame JComponent JFrame JComponent

repaint()

You cannot call paintComponent(Graphics g) on your own

Only the system can!

repaint() is inherited from Jcomponent

calling it creates a Graphics object and calls paintComponent()

Page 19: JFrame JComponent JFrame JComponent JFrame JComponent

repaint()

Page 20: JFrame JComponent JFrame JComponent JFrame JComponent

Shape Classimport java.awt.geom.*;

Page 21: JFrame JComponent JFrame JComponent JFrame JComponent
Page 22: JFrame JComponent JFrame JComponent JFrame JComponent

eventsimport java.awt.event.*

Page 23: JFrame JComponent JFrame JComponent JFrame JComponent

stimulus-response model

source listener

responder(s)

event

Page 24: JFrame JComponent JFrame JComponent JFrame JComponent

four parts of process Java mechanisms

stimulus event (button press, timer tick, etc.)

communication (event record of what happened)

ActionEvent class (contains information about nature of stimulus)

receiving mechanism (how are the stimulus and responding objects connected?)

ActionListener interface (classes implementing can listen for a specific kind of event)

response (listening object’s reaction to stimulus)

actionPerformed (method called in response to stimulus)

Page 25: JFrame JComponent JFrame JComponent JFrame JComponent

moving our alien

- need a Timer to generate actions

- need a class listening and responding to actions

implement ActionListener by defining actionPerformed()

Page 26: JFrame JComponent JFrame JComponent JFrame JComponent

Plan:1. Create a Timer() object within our drawing panel

- takes two args: delay time and action2. Create an “inner class” MoveAlien that implements

ActionListener3. Define actionPerformed() to tell our panel what to do4. Our drawing panel decides what should move and

repaints itself

Page 27: JFrame JComponent JFrame JComponent JFrame JComponent

moving our alien with a mouse

implement MouseListener interface

define mouseClicked() to instead tell our panel what to do

Page 28: JFrame JComponent JFrame JComponent JFrame JComponent

moving our alien with a keyboard

request focus on component

implement KeyListener interface

define keyPressed() to instead tell our panel what to do