SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
https://www.facebook.com/Oxus20 
oxus20@gmail.com 
Java Applet & Graphics 
Java Applet 
Java Graphics 
Analog Clock 
Prepared By: Khosrow Kian 
Edited By: Abdul Rahman Sherzad
Table of Contents 
»Java Applet 
˃Introduction and Concept 
˃Demos 
»Graphics 
˃Introduction and Concept 
»Java Applet Code 
2 
https://www.facebook.com/Oxus20
Java Applet 
»An applet is a subclass of Panel 
˃It is a container which can hold GUI components 
˃It has a graphics context which can be used to draw images 
»An applet embedded within an HTML page 
˃Applets are defined using the <applet> tag 
˃Its size and location are defined within the tag 
»Java Virtual Machine is required for the browsers to execute the applet 
3 
https://www.facebook.com/Oxus20
Java Applets vs. Applications 
»Applets - Java programs that can run over the Internet using a browser. 
˃The browser either contains a JVM (Java Virtual Machine) or loads the Java plugin 
˃Applets do not require a main(), but in general will have a paint(). 
˃An Applet also requires an HTML file before it can be executed. 
˃Java Applets are also compiled using the javac command, but are run either with a browser or with the applet viewer command. 
»Applications - Java programs that run directly on your machine. 
˃Applications must have a main(). 
˃Java applications are compiled using the javac command and run using the java command. 
4 
https://www.facebook.com/Oxus20
Java Applets vs. Applications 
Feature 
Application 
Applet 
main() method 
Present 
Not present 
Execution 
Requires JRE 
Requires a browser like Chrome, Firefox, IE, Safari, Opera, etc. 
Nature 
Called as stand-alone application as application can be executed from command prompt 
Requires some third party tool help like a browser to execute 
Restrictions 
Can access any data or software available on the system 
cannot access any thing on the system except browser’s services 
Security 
Does not require any security 
Requires highest security for the system as they are untrusted 
5 
https://www.facebook.com/Oxus20
Java Applet Advantages 
»Execution of applets is easy in a Web browser and does not require any installation or deployment procedure in real-time programming. 
»Writing and displaying (just opening in a browser) graphics and animations is easier than applications. 
»In GUI development, constructor, size of frame, window closing code etc. are not required. 
6 
https://www.facebook.com/Oxus20
Java Applet Methods 
»init() 
˃Called when applet is loaded onto user’s machine. 
»start() 
˃Called when applet becomes visible (page called up). 
»stop() 
˃Called when applet becomes hidden (page loses focus). 
»destroy() 
˃Guaranteed to be called when browser shuts down. 
7 
https://www.facebook.com/Oxus20
Introduction to Java Graphics 
»Java contains support for graphics that enable programmers to visually enhance applications 
»Java contains many more sophisticated drawing capabilities as part of the Java 2D API 
˃Color 
˃Font and FontMetrics 
˃Graphics2D 
˃Polygon 
˃BasicStroke 
˃GradientPaint and TexturePaint 
˃Java 2D shape classes 
8 
https://www.facebook.com/Oxus20
9 
https://www.facebook.com/Oxus20
Java Coordinate System 
»Upper-Left Corner of a GUI component has the coordinates (0, 0) 
»X-Coordinate (horizontal coordinate) 
˃horizontal distance moving right from the left of the screen 
»Y-Coordinate (vertical coordinate) 
˃vertical distance moving down from the top of the screen 
»Coordinate units are measured in pixels. 
˃A pixel is a display monitor’s smallest unit of resolution. 
https://www.facebook.com/Oxus20 
10
All Roads Lead to JComponent 
»Every Swing object inherits from JComponent 
» JComponent has a few methods that can be overridden in order to draw special things 
˃public void paint(Graphics g) 
˃public void paintComponent(Graphics g) 
˃public void repaint() 
»So if we want custom drawing, we take any JComponent and extend it... 
˃JPanel is a good choice 
11 
https://www.facebook.com/Oxus20
Draw Line Example 
import java.awt.Graphics; 
import javax.swing.JApplet; 
public class DrawLine extends JApplet { 
@Override 
public void init() { 
} 
public void paint(Graphics g){ 
g.drawLine(20,20, 100,100); 
} 
} 
https://www.facebook.com/Oxus20 
12
Draw Rectangles Example 
import java.awt.Graphics; 
import javax.swing.JApplet; 
public class DrawRect extends JApplet { 
@Override 
public void init() { 
super.init(); 
} 
public void paint(Graphics g) { 
g.drawRect(20, 20, 100, 100); 
g.fillRect(130, 20, 100, 100); 
g.drawRoundRect(240, 20, 100, 100, 10, 10); 
} 
} 
https://www.facebook.com/Oxus20 
13
Draw Ovals Example 
import java.awt.Graphics; 
import javax.swing.JApplet; 
public class DrawOval extends JApplet { 
@Override 
public void init() { 
} 
public void paint(Graphics g) { 
g.drawOval(20, 20, 100, 100); 
g.fillOval(130, 20, 100, 100); 
} 
} 
https://www.facebook.com/Oxus20 
14
Simple Calculator Example 
import java.applet.Applet; 
import java.awt.BorderLayout; 
import java.awt.Button; 
import java.awt.Font; 
import java.awt.GridLayout; 
import java.awt.Panel; 
import java.awt.TextField; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
public class Calculator extends Applet implements ActionListener { 
String operators[] = { "+", "-", "*", "/", "=", "C" }; 
String operator = ""; 
int previousValue = 0; 
Button buttons[] = new Button[16]; 
TextField txtResult = new TextField(10); 
15 
https://www.facebook.com/Oxus20
public void init() { 
setLayout(new BorderLayout()); 
add(txtResult, "North"); 
txtResult.setText("0"); 
Panel p = new Panel(); 
p.setLayout(new GridLayout(4, 4)); 
for (int i = 0; i < 16; i++) { 
if (i < 10) { 
buttons[i] = new Button(String.valueOf(i)); 
} else { 
buttons[i] = new Button(operators[i % 10]); 
} 
buttons[i].setFont(new Font("Verdana", Font.BOLD, 18)); 
p.add(buttons[i]); 
add(p, "Center"); 
buttons[i].addActionListener(this); 
} 
} 
16 
https://www.facebook.com/Oxus20
public void actionPerformed(ActionEvent ae) { 
int result = 0; 
String caption = ae.getActionCommand(); 
int currentValue = Integer.parseInt(txtResult.getText()); 
if (caption.equals("C")) { 
txtResult.setText("0"); 
previousValue = 0; 
currentValue = 0; 
result = 0; 
operator = ""; 
} else if (caption.equals("=")) { 
result = 0; 
if (operator == "+") 
result = previousValue + currentValue; 
else if (operator == "-") 
result = previousValue - currentValue; 
else if (operator == "*") 
result = previousValue * currentValue; 
else if (operator == "/") 
result = previousValue / currentValue; 
txtResult.setText(String.valueOf(result)); 
} 
17 
https://www.facebook.com/Oxus20
End - Simple Calculator Example 
else if (caption.equals("+") || caption.equals("-") 
|| caption.equals("*") || caption.equals("/")) { 
previousValue = currentValue; 
operator = caption; 
txtResult.setText("0"); 
} else { 
int value = currentValue * 10 + Integer.parseInt(caption); 
txtResult.setText(String.valueOf(value)); 
} 
} 
} 
18 
https://www.facebook.com/Oxus20
OUTPUT - Simple Calculator Example 
19 
https://www.facebook.com/Oxus20
Example of Graphics and Applet 
20 
https://www.facebook.com/Oxus20
Analog Clock Example 
21 
https://www.facebook.com/Oxus20 
import java.applet.Applet; 
import java.awt.BasicStroke; 
import java.awt.Color; 
import java.awt.Font; 
import java.awt.Graphics; 
import java.awt.Graphics2D; 
import java.util.Calendar; 
public class AnalogClock extends Applet implements Runnable { 
private static final long serialVersionUID = 1L; 
private static final double TWO_PI = 2.0 * Math.PI; 
private Calendar nw = Calendar.getInstance(); 
int width = 200, hight = 200; 
int xcent = width / 2, ycent = hight / 2; 
int minhand, maxhand; 
double rdns; 
int dxmin, dymin, dxmax, dymax; 
double radins, sine, cosine; 
double fminutes; 
Thread t = null; 
Boolean stopFlag;
22 
https://www.facebook.com/Oxus20 
public void start() { 
t = new Thread(this); 
stopFlag = false; 
t.start(); 
} 
public void run() { 
for (;;) { 
try { 
updateTime(); 
repaint(); 
Thread.sleep(1000); 
if (stopFlag) 
break; 
} catch (InterruptedException e) { 
} 
} 
} 
public void stop() { 
stopFlag = true; 
t = null; 
} 
private void updateTime() { 
nw.setTimeInMillis(System.currentTimeMillis()); 
}
23 
https://www.facebook.com/Oxus20 
public void paint(Graphics g) { 
g.setFont(new Font("Gabriola", Font.BOLD + Font.ITALIC, 160)); 
g.setColor(Color.RED); 
g.drawString("XUS", 300, 270); 
g.setFont(new Font("Consolas", Font.BOLD + Font.ITALIC, 100)); 
g.setColor(Color.GREEN); 
g.drawString("20", 550, 270); 
g.setColor(Color.black); 
g.fillOval(100, 100, 200, 200); 
Graphics2D g1 = (Graphics2D) g; 
int hours = nw.get(Calendar.HOUR); 
int minutes = nw.get(Calendar.MINUTE); 
int seconds = nw.get(Calendar.SECOND); 
int millis = nw.get(Calendar.MILLISECOND); 
minhand = width / 8; 
maxhand = width / 2; 
rdns = (seconds + ((double) millis / 1000)) / 60.0; 
drw(g1, rdns, 0, maxhand - 20); 
g1.setColor(Color.BLUE); 
g1.drawString( 
String.format("%02d : %02d :%02d ", hours, minutes, seconds), 
minhand + 150, maxhand + 170);
24 
https://www.facebook.com/Oxus20 
minhand = 0; // Minute hand starts in middle. 
maxhand = width / 3; 
fminutes = (minutes + rdns) / 60.0; 
drw(g1, fminutes, 0, maxhand); 
minhand = 0; // Minute hand starts in middle. 
maxhand = width / 4; 
drw(g1, (hours + fminutes) / 12.0, 0, maxhand); 
g1.setColor(Color.gray); // set b ackground of circle 
g1.drawOval(100, 100, 200, 200); // draw a circle 
g1.setColor(Color.WHITE); 
g1.setFont(new Font("Consulas", Font.BOLD + Font.ITALIC, 15)); 
g1.drawString("12", 190, 120); 
g1.drawString("6", 195, 290); 
g1.drawString("3", 280, 200); 
g1.drawString("6", 110, 200); 
g1.setFont(new Font("Consulas", Font.BOLD + Font.ITALIC, 15)); 
g1.setStroke(new BasicStroke(2, BasicStroke.JOIN_MITER, 
BasicStroke.JOIN_BEVEL)); 
}
End - Analog Clock Example 
public void drw(Graphics2D g, double prct, int minRadius, int maxRadius) { 
radins = (0.5 - prct) * TWO_PI; 
sine = Math.sin(radins); 
cosine = Math.cos(radins); 
dxmin = xcent + (int) (minRadius * sine); 
dymin = ycent + (int) (minRadius * cosine); 
dxmax = xcent + (int) (maxRadius * sine); 
dymax = ycent + (int) (maxRadius * cosine); 
g.setColor(Color.WHITE); 
g.setBackground(Color.cyan); 
g.setFont(new Font("Consulas", Font.BOLD + Font.ITALIC, 12)); 
g.drawLine(dxmin + 100, dymin + 100, dxmax + 100, dymax + 100); 
} 
} 
25 
https://www.facebook.com/Oxus20
OUTPUT - Analog Clock Example 
26 
https://www.facebook.com/Oxus20
END 
https://www.facebook.com/Oxus20 
27

Contenu connexe

En vedette

Java Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton ClassesJava Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton ClassesOXUS 20
 
Java Regular Expression PART II
Java Regular Expression PART IIJava Regular Expression PART II
Java Regular Expression PART IIOXUS 20
 
Conditional Statement
Conditional Statement Conditional Statement
Conditional Statement OXUS 20
 
Fal-e-Hafez (Omens of Hafez) Cards in Persian using Java
Fal-e-Hafez (Omens of Hafez) Cards in Persian using JavaFal-e-Hafez (Omens of Hafez) Cards in Persian using Java
Fal-e-Hafez (Omens of Hafez) Cards in Persian using JavaOXUS 20
 
Structure programming – Java Programming – Theory
Structure programming – Java Programming – TheoryStructure programming – Java Programming – Theory
Structure programming – Java Programming – TheoryOXUS 20
 
Object Oriented Concept Static vs. Non Static
Object Oriented Concept Static vs. Non StaticObject Oriented Concept Static vs. Non Static
Object Oriented Concept Static vs. Non StaticOXUS 20
 
Java Guessing Game Number Tutorial
Java Guessing Game Number TutorialJava Guessing Game Number Tutorial
Java Guessing Game Number TutorialOXUS 20
 
Create Splash Screen with Java Step by Step
Create Splash Screen with Java Step by StepCreate Splash Screen with Java Step by Step
Create Splash Screen with Java Step by StepOXUS 20
 
Web Design and Development Life Cycle and Technologies
Web Design and Development Life Cycle and TechnologiesWeb Design and Development Life Cycle and Technologies
Web Design and Development Life Cycle and TechnologiesOXUS 20
 
Everything about Database JOINS and Relationships
Everything about Database JOINS and RelationshipsEverything about Database JOINS and Relationships
Everything about Database JOINS and RelationshipsOXUS 20
 
Note - Java Remote Debug
Note - Java Remote DebugNote - Java Remote Debug
Note - Java Remote Debugboyw165
 
Core java notes with examples
Core java notes with examplesCore java notes with examples
Core java notes with examplesbindur87
 
Java Unicode with Live GUI Examples
Java Unicode with Live GUI ExamplesJava Unicode with Live GUI Examples
Java Unicode with Live GUI ExamplesAbdul Rahman Sherzad
 
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton ClassesJava Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton ClassesAbdul Rahman Sherzad
 
Jdbc Complete Notes by Java Training Center (Som Sir)
Jdbc Complete Notes by Java Training Center (Som Sir)Jdbc Complete Notes by Java Training Center (Som Sir)
Jdbc Complete Notes by Java Training Center (Som Sir)Som Prakash Rai
 
Java Arrays
Java ArraysJava Arrays
Java ArraysOXUS 20
 

En vedette (20)

Java Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton ClassesJava Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
 
Java Regular Expression PART II
Java Regular Expression PART IIJava Regular Expression PART II
Java Regular Expression PART II
 
Conditional Statement
Conditional Statement Conditional Statement
Conditional Statement
 
Fal-e-Hafez (Omens of Hafez) Cards in Persian using Java
Fal-e-Hafez (Omens of Hafez) Cards in Persian using JavaFal-e-Hafez (Omens of Hafez) Cards in Persian using Java
Fal-e-Hafez (Omens of Hafez) Cards in Persian using Java
 
Structure programming – Java Programming – Theory
Structure programming – Java Programming – TheoryStructure programming – Java Programming – Theory
Structure programming – Java Programming – Theory
 
Object Oriented Concept Static vs. Non Static
Object Oriented Concept Static vs. Non StaticObject Oriented Concept Static vs. Non Static
Object Oriented Concept Static vs. Non Static
 
Java Guessing Game Number Tutorial
Java Guessing Game Number TutorialJava Guessing Game Number Tutorial
Java Guessing Game Number Tutorial
 
Create Splash Screen with Java Step by Step
Create Splash Screen with Java Step by StepCreate Splash Screen with Java Step by Step
Create Splash Screen with Java Step by Step
 
Web Design and Development Life Cycle and Technologies
Web Design and Development Life Cycle and TechnologiesWeb Design and Development Life Cycle and Technologies
Web Design and Development Life Cycle and Technologies
 
Everything about Database JOINS and Relationships
Everything about Database JOINS and RelationshipsEverything about Database JOINS and Relationships
Everything about Database JOINS and Relationships
 
Note - Java Remote Debug
Note - Java Remote DebugNote - Java Remote Debug
Note - Java Remote Debug
 
Core java notes with examples
Core java notes with examplesCore java notes with examples
Core java notes with examples
 
Java Unicode with Live GUI Examples
Java Unicode with Live GUI ExamplesJava Unicode with Live GUI Examples
Java Unicode with Live GUI Examples
 
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton ClassesJava Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
 
Jdbc Complete Notes by Java Training Center (Som Sir)
Jdbc Complete Notes by Java Training Center (Som Sir)Jdbc Complete Notes by Java Training Center (Som Sir)
Jdbc Complete Notes by Java Training Center (Som Sir)
 
Advanced core java
Advanced core javaAdvanced core java
Advanced core java
 
Java essential notes
Java essential notesJava essential notes
Java essential notes
 
Java lab 2
Java lab 2Java lab 2
Java lab 2
 
Java Lab Manual
Java Lab ManualJava Lab Manual
Java Lab Manual
 
Java Arrays
Java ArraysJava Arrays
Java Arrays
 

Similaire à Java Applet & Graphics Documentation

Graphics programming in Java
Graphics programming in JavaGraphics programming in Java
Graphics programming in JavaTushar B Kute
 
The 2016 Android Developer Toolbox [MOBILIZATION]
The 2016 Android Developer Toolbox [MOBILIZATION]The 2016 Android Developer Toolbox [MOBILIZATION]
The 2016 Android Developer Toolbox [MOBILIZATION]Nilhcem
 
2016 gunma.web games-and-asm.js
2016 gunma.web games-and-asm.js2016 gunma.web games-and-asm.js
2016 gunma.web games-and-asm.jsNoritada Shimizu
 
HTML5 - Daha Flash bir web?
HTML5 - Daha Flash bir web?HTML5 - Daha Flash bir web?
HTML5 - Daha Flash bir web?Ankara JUG
 
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NCAndroid Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NCJim Tochterman
 
Introduction To Google Android (Ft Rohan Bomle)
Introduction To Google Android (Ft Rohan Bomle)Introduction To Google Android (Ft Rohan Bomle)
Introduction To Google Android (Ft Rohan Bomle)Fafadia Tech
 
WebGL: GPU acceleration for the open web
WebGL: GPU acceleration for the open webWebGL: GPU acceleration for the open web
WebGL: GPU acceleration for the open webpjcozzi
 
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)Oswald Campesato
 
MOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app developmentMOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app developmentanistar sung
 
Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Patrick Chanezon
 
A tech writer, a map, and an app
A tech writer, a map, and an appA tech writer, a map, and an app
A tech writer, a map, and an appSarah Maddox
 

Similaire à Java Applet & Graphics Documentation (20)

Graphics programming in Java
Graphics programming in JavaGraphics programming in Java
Graphics programming in Java
 
The 2016 Android Developer Toolbox [MOBILIZATION]
The 2016 Android Developer Toolbox [MOBILIZATION]The 2016 Android Developer Toolbox [MOBILIZATION]
The 2016 Android Developer Toolbox [MOBILIZATION]
 
A More Flash Like Web?
A More Flash Like Web?A More Flash Like Web?
A More Flash Like Web?
 
2016 gunma.web games-and-asm.js
2016 gunma.web games-and-asm.js2016 gunma.web games-and-asm.js
2016 gunma.web games-and-asm.js
 
HTML5 - Daha Flash bir web?
HTML5 - Daha Flash bir web?HTML5 - Daha Flash bir web?
HTML5 - Daha Flash bir web?
 
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NCAndroid Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
 
Introduction To Google Android (Ft Rohan Bomle)
Introduction To Google Android (Ft Rohan Bomle)Introduction To Google Android (Ft Rohan Bomle)
Introduction To Google Android (Ft Rohan Bomle)
 
mobl
moblmobl
mobl
 
Basic of Applet
Basic of AppletBasic of Applet
Basic of Applet
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Applet progming
Applet progmingApplet progming
Applet progming
 
WebGL: GPU acceleration for the open web
WebGL: GPU acceleration for the open webWebGL: GPU acceleration for the open web
WebGL: GPU acceleration for the open web
 
@Ionic native/google-maps
@Ionic native/google-maps@Ionic native/google-maps
@Ionic native/google-maps
 
Svcc 2013-d3
Svcc 2013-d3Svcc 2013-d3
Svcc 2013-d3
 
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)
 
Applet life cycle
Applet life cycleApplet life cycle
Applet life cycle
 
MOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app developmentMOPCON 2014 - Best software architecture in app development
MOPCON 2014 - Best software architecture in app development
 
Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?Google's HTML5 Work: what's next?
Google's HTML5 Work: what's next?
 
A tech writer, a map, and an app
A tech writer, a map, and an appA tech writer, a map, and an app
A tech writer, a map, and an app
 
Vaadin Components
Vaadin ComponentsVaadin Components
Vaadin Components
 

Plus de OXUS 20

Java Methods
Java MethodsJava Methods
Java MethodsOXUS 20
 
Fundamentals of Database Systems Questions and Answers
Fundamentals of Database Systems Questions and AnswersFundamentals of Database Systems Questions and Answers
Fundamentals of Database Systems Questions and AnswersOXUS 20
 
JAVA GUI PART III
JAVA GUI PART IIIJAVA GUI PART III
JAVA GUI PART IIIOXUS 20
 
Java GUI PART II
Java GUI PART IIJava GUI PART II
Java GUI PART IIOXUS 20
 
JAVA GUI PART I
JAVA GUI PART IJAVA GUI PART I
JAVA GUI PART IOXUS 20
 
JAVA Programming Questions and Answers PART III
JAVA Programming Questions and Answers PART IIIJAVA Programming Questions and Answers PART III
JAVA Programming Questions and Answers PART IIIOXUS 20
 
Object Oriented Programming with Real World Examples
Object Oriented Programming with Real World ExamplesObject Oriented Programming with Real World Examples
Object Oriented Programming with Real World ExamplesOXUS 20
 

Plus de OXUS 20 (7)

Java Methods
Java MethodsJava Methods
Java Methods
 
Fundamentals of Database Systems Questions and Answers
Fundamentals of Database Systems Questions and AnswersFundamentals of Database Systems Questions and Answers
Fundamentals of Database Systems Questions and Answers
 
JAVA GUI PART III
JAVA GUI PART IIIJAVA GUI PART III
JAVA GUI PART III
 
Java GUI PART II
Java GUI PART IIJava GUI PART II
Java GUI PART II
 
JAVA GUI PART I
JAVA GUI PART IJAVA GUI PART I
JAVA GUI PART I
 
JAVA Programming Questions and Answers PART III
JAVA Programming Questions and Answers PART IIIJAVA Programming Questions and Answers PART III
JAVA Programming Questions and Answers PART III
 
Object Oriented Programming with Real World Examples
Object Oriented Programming with Real World ExamplesObject Oriented Programming with Real World Examples
Object Oriented Programming with Real World Examples
 

Dernier

Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 

Dernier (20)

Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 

Java Applet & Graphics Documentation

  • 1. https://www.facebook.com/Oxus20 oxus20@gmail.com Java Applet & Graphics Java Applet Java Graphics Analog Clock Prepared By: Khosrow Kian Edited By: Abdul Rahman Sherzad
  • 2. Table of Contents »Java Applet ˃Introduction and Concept ˃Demos »Graphics ˃Introduction and Concept »Java Applet Code 2 https://www.facebook.com/Oxus20
  • 3. Java Applet »An applet is a subclass of Panel ˃It is a container which can hold GUI components ˃It has a graphics context which can be used to draw images »An applet embedded within an HTML page ˃Applets are defined using the <applet> tag ˃Its size and location are defined within the tag »Java Virtual Machine is required for the browsers to execute the applet 3 https://www.facebook.com/Oxus20
  • 4. Java Applets vs. Applications »Applets - Java programs that can run over the Internet using a browser. ˃The browser either contains a JVM (Java Virtual Machine) or loads the Java plugin ˃Applets do not require a main(), but in general will have a paint(). ˃An Applet also requires an HTML file before it can be executed. ˃Java Applets are also compiled using the javac command, but are run either with a browser or with the applet viewer command. »Applications - Java programs that run directly on your machine. ˃Applications must have a main(). ˃Java applications are compiled using the javac command and run using the java command. 4 https://www.facebook.com/Oxus20
  • 5. Java Applets vs. Applications Feature Application Applet main() method Present Not present Execution Requires JRE Requires a browser like Chrome, Firefox, IE, Safari, Opera, etc. Nature Called as stand-alone application as application can be executed from command prompt Requires some third party tool help like a browser to execute Restrictions Can access any data or software available on the system cannot access any thing on the system except browser’s services Security Does not require any security Requires highest security for the system as they are untrusted 5 https://www.facebook.com/Oxus20
  • 6. Java Applet Advantages »Execution of applets is easy in a Web browser and does not require any installation or deployment procedure in real-time programming. »Writing and displaying (just opening in a browser) graphics and animations is easier than applications. »In GUI development, constructor, size of frame, window closing code etc. are not required. 6 https://www.facebook.com/Oxus20
  • 7. Java Applet Methods »init() ˃Called when applet is loaded onto user’s machine. »start() ˃Called when applet becomes visible (page called up). »stop() ˃Called when applet becomes hidden (page loses focus). »destroy() ˃Guaranteed to be called when browser shuts down. 7 https://www.facebook.com/Oxus20
  • 8. Introduction to Java Graphics »Java contains support for graphics that enable programmers to visually enhance applications »Java contains many more sophisticated drawing capabilities as part of the Java 2D API ˃Color ˃Font and FontMetrics ˃Graphics2D ˃Polygon ˃BasicStroke ˃GradientPaint and TexturePaint ˃Java 2D shape classes 8 https://www.facebook.com/Oxus20
  • 10. Java Coordinate System »Upper-Left Corner of a GUI component has the coordinates (0, 0) »X-Coordinate (horizontal coordinate) ˃horizontal distance moving right from the left of the screen »Y-Coordinate (vertical coordinate) ˃vertical distance moving down from the top of the screen »Coordinate units are measured in pixels. ˃A pixel is a display monitor’s smallest unit of resolution. https://www.facebook.com/Oxus20 10
  • 11. All Roads Lead to JComponent »Every Swing object inherits from JComponent » JComponent has a few methods that can be overridden in order to draw special things ˃public void paint(Graphics g) ˃public void paintComponent(Graphics g) ˃public void repaint() »So if we want custom drawing, we take any JComponent and extend it... ˃JPanel is a good choice 11 https://www.facebook.com/Oxus20
  • 12. Draw Line Example import java.awt.Graphics; import javax.swing.JApplet; public class DrawLine extends JApplet { @Override public void init() { } public void paint(Graphics g){ g.drawLine(20,20, 100,100); } } https://www.facebook.com/Oxus20 12
  • 13. Draw Rectangles Example import java.awt.Graphics; import javax.swing.JApplet; public class DrawRect extends JApplet { @Override public void init() { super.init(); } public void paint(Graphics g) { g.drawRect(20, 20, 100, 100); g.fillRect(130, 20, 100, 100); g.drawRoundRect(240, 20, 100, 100, 10, 10); } } https://www.facebook.com/Oxus20 13
  • 14. Draw Ovals Example import java.awt.Graphics; import javax.swing.JApplet; public class DrawOval extends JApplet { @Override public void init() { } public void paint(Graphics g) { g.drawOval(20, 20, 100, 100); g.fillOval(130, 20, 100, 100); } } https://www.facebook.com/Oxus20 14
  • 15. Simple Calculator Example import java.applet.Applet; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Font; import java.awt.GridLayout; import java.awt.Panel; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Calculator extends Applet implements ActionListener { String operators[] = { "+", "-", "*", "/", "=", "C" }; String operator = ""; int previousValue = 0; Button buttons[] = new Button[16]; TextField txtResult = new TextField(10); 15 https://www.facebook.com/Oxus20
  • 16. public void init() { setLayout(new BorderLayout()); add(txtResult, "North"); txtResult.setText("0"); Panel p = new Panel(); p.setLayout(new GridLayout(4, 4)); for (int i = 0; i < 16; i++) { if (i < 10) { buttons[i] = new Button(String.valueOf(i)); } else { buttons[i] = new Button(operators[i % 10]); } buttons[i].setFont(new Font("Verdana", Font.BOLD, 18)); p.add(buttons[i]); add(p, "Center"); buttons[i].addActionListener(this); } } 16 https://www.facebook.com/Oxus20
  • 17. public void actionPerformed(ActionEvent ae) { int result = 0; String caption = ae.getActionCommand(); int currentValue = Integer.parseInt(txtResult.getText()); if (caption.equals("C")) { txtResult.setText("0"); previousValue = 0; currentValue = 0; result = 0; operator = ""; } else if (caption.equals("=")) { result = 0; if (operator == "+") result = previousValue + currentValue; else if (operator == "-") result = previousValue - currentValue; else if (operator == "*") result = previousValue * currentValue; else if (operator == "/") result = previousValue / currentValue; txtResult.setText(String.valueOf(result)); } 17 https://www.facebook.com/Oxus20
  • 18. End - Simple Calculator Example else if (caption.equals("+") || caption.equals("-") || caption.equals("*") || caption.equals("/")) { previousValue = currentValue; operator = caption; txtResult.setText("0"); } else { int value = currentValue * 10 + Integer.parseInt(caption); txtResult.setText(String.valueOf(value)); } } } 18 https://www.facebook.com/Oxus20
  • 19. OUTPUT - Simple Calculator Example 19 https://www.facebook.com/Oxus20
  • 20. Example of Graphics and Applet 20 https://www.facebook.com/Oxus20
  • 21. Analog Clock Example 21 https://www.facebook.com/Oxus20 import java.applet.Applet; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.util.Calendar; public class AnalogClock extends Applet implements Runnable { private static final long serialVersionUID = 1L; private static final double TWO_PI = 2.0 * Math.PI; private Calendar nw = Calendar.getInstance(); int width = 200, hight = 200; int xcent = width / 2, ycent = hight / 2; int minhand, maxhand; double rdns; int dxmin, dymin, dxmax, dymax; double radins, sine, cosine; double fminutes; Thread t = null; Boolean stopFlag;
  • 22. 22 https://www.facebook.com/Oxus20 public void start() { t = new Thread(this); stopFlag = false; t.start(); } public void run() { for (;;) { try { updateTime(); repaint(); Thread.sleep(1000); if (stopFlag) break; } catch (InterruptedException e) { } } } public void stop() { stopFlag = true; t = null; } private void updateTime() { nw.setTimeInMillis(System.currentTimeMillis()); }
  • 23. 23 https://www.facebook.com/Oxus20 public void paint(Graphics g) { g.setFont(new Font("Gabriola", Font.BOLD + Font.ITALIC, 160)); g.setColor(Color.RED); g.drawString("XUS", 300, 270); g.setFont(new Font("Consolas", Font.BOLD + Font.ITALIC, 100)); g.setColor(Color.GREEN); g.drawString("20", 550, 270); g.setColor(Color.black); g.fillOval(100, 100, 200, 200); Graphics2D g1 = (Graphics2D) g; int hours = nw.get(Calendar.HOUR); int minutes = nw.get(Calendar.MINUTE); int seconds = nw.get(Calendar.SECOND); int millis = nw.get(Calendar.MILLISECOND); minhand = width / 8; maxhand = width / 2; rdns = (seconds + ((double) millis / 1000)) / 60.0; drw(g1, rdns, 0, maxhand - 20); g1.setColor(Color.BLUE); g1.drawString( String.format("%02d : %02d :%02d ", hours, minutes, seconds), minhand + 150, maxhand + 170);
  • 24. 24 https://www.facebook.com/Oxus20 minhand = 0; // Minute hand starts in middle. maxhand = width / 3; fminutes = (minutes + rdns) / 60.0; drw(g1, fminutes, 0, maxhand); minhand = 0; // Minute hand starts in middle. maxhand = width / 4; drw(g1, (hours + fminutes) / 12.0, 0, maxhand); g1.setColor(Color.gray); // set b ackground of circle g1.drawOval(100, 100, 200, 200); // draw a circle g1.setColor(Color.WHITE); g1.setFont(new Font("Consulas", Font.BOLD + Font.ITALIC, 15)); g1.drawString("12", 190, 120); g1.drawString("6", 195, 290); g1.drawString("3", 280, 200); g1.drawString("6", 110, 200); g1.setFont(new Font("Consulas", Font.BOLD + Font.ITALIC, 15)); g1.setStroke(new BasicStroke(2, BasicStroke.JOIN_MITER, BasicStroke.JOIN_BEVEL)); }
  • 25. End - Analog Clock Example public void drw(Graphics2D g, double prct, int minRadius, int maxRadius) { radins = (0.5 - prct) * TWO_PI; sine = Math.sin(radins); cosine = Math.cos(radins); dxmin = xcent + (int) (minRadius * sine); dymin = ycent + (int) (minRadius * cosine); dxmax = xcent + (int) (maxRadius * sine); dymax = ycent + (int) (maxRadius * cosine); g.setColor(Color.WHITE); g.setBackground(Color.cyan); g.setFont(new Font("Consulas", Font.BOLD + Font.ITALIC, 12)); g.drawLine(dxmin + 100, dymin + 100, dxmax + 100, dymax + 100); } } 25 https://www.facebook.com/Oxus20
  • 26. OUTPUT - Analog Clock Example 26 https://www.facebook.com/Oxus20