jframe jcomponent jframe jcomponent jframe jcomponent
TRANSCRIPT
![Page 1: JFrame JComponent JFrame JComponent JFrame JComponent](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/1.jpg)
Lecture 19COP3502: Introduction to CIS I
![Page 2: JFrame JComponent JFrame JComponent JFrame JComponent](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/2.jpg)
java swing
![Page 3: JFrame JComponent JFrame JComponent JFrame JComponent](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/3.jpg)
java swingimport javax.swing.*;
![Page 4: JFrame JComponent JFrame JComponent JFrame JComponent](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/4.jpg)
JFrame
![Page 5: JFrame JComponent JFrame JComponent JFrame JComponent](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/5.jpg)
JFrameJComponent
![Page 6: JFrame JComponent JFrame JComponent JFrame JComponent](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/6.jpg)
JFrameJComponent
![Page 7: JFrame JComponent JFrame JComponent JFrame JComponent](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/7.jpg)
JFrameJComponent
![Page 8: JFrame JComponent JFrame JComponent JFrame JComponent](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/8.jpg)
JComponents
JPanelJLabelJSlider
JScrollBarJPopupMenu
JMenuBar…. many more!
![Page 9: JFrame JComponent JFrame JComponent JFrame JComponent](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/9.jpg)
![Page 10: JFrame JComponent JFrame JComponent JFrame JComponent](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/12.jpg)
window organization
![Page 13: JFrame JComponent JFrame JComponent JFrame JComponent](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/13.jpg)
graphicsimport java.awt.Graphics;
![Page 14: JFrame JComponent JFrame JComponent JFrame JComponent](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/19.jpg)
repaint()
![Page 20: JFrame JComponent JFrame JComponent JFrame JComponent](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/20.jpg)
Shape Classimport java.awt.geom.*;
![Page 21: JFrame JComponent JFrame JComponent JFrame JComponent](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/21.jpg)
![Page 22: JFrame JComponent JFrame JComponent JFrame JComponent](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/22.jpg)
eventsimport java.awt.event.*
![Page 23: JFrame JComponent JFrame JComponent JFrame JComponent](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/23.jpg)
stimulus-response model
source listener
responder(s)
event
![Page 24: JFrame JComponent JFrame JComponent JFrame JComponent](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062320/56649d005503460f949d2f1b/html5/thumbnails/28.jpg)
moving our alien with a keyboard
request focus on component
implement KeyListener interface
define keyPressed() to instead tell our panel what to do