Chap 01ed8

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 76

Introduction to Computers and

Java
Chapter 1

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Objectives

• Overview of computer hardware and software


• Introduce program design and object-oriented
programming
• Overview of the Java programming language
• (Optional) introduce JavaFX and graphics basics

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Outline

• Computer Basics
• Designing Programs
• A Sip of Java
• Graphics Supplement

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Computer Basics: Outline
• Hardware and Memory
• Programs
• Programming Languages and Compilers
• Java Byte-Code
• Graphics Supplement

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Hardware and Software

• Computer systems consist of hardware and


software.
• Hardware includes the tangible parts of computer
systems.
• Software includes programs - sets of instructions for the
computer to follow.
• Familiarity with hardware basics helps us
understand software.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Hardware and Memory

• Most modern computers have similar components


including
• Input devices (keyboard, mouse, etc.)
• Output devices (display screen, printer, etc.)
• A processor
• Two kinds of memory (main memory and auxiliary
memory).

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
The Processor

• Also called the CPU (central processing unit) or the


chip (e.g. Pentium processor)
• The processor processes a program’s instructions.
• It can process only very simple instructions.
• The power of computing comes from speed and
program intricacy.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Memory

• Memory holds
• programs
• data for the computer to process
• the results of intermediate processing.
• Two kinds of memory
• main memory
• auxiliary memory

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Main memory

• Working memory used to store


• The current program
• The data the program is using
• The results of intermediate calculations
• Usually measured in megabytes (e.g. 8 gigabytes of
RAM)
• RAM is short for random access memory
• A byte is a quantity of memory

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Auxiliary Memory

• Also called secondary memory


• Disk drives, CDs, DVDs, flash drives, etc.
• More or less permanent (nonvolatile)
• Usually measured in gigabytes (e.g. 50 gigabyte
hard drive)

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Bits, Bytes, and Addresses

• A bit is a digit with a value of either 0 or 1.


• A byte consists of 8 bits.
• Each byte in main memory resides at a
numbered location called its address.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Main Memory
• Figure 1.1

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Storing Data

• Data of all kinds (numbers, letters, strings of


characters, audio, video, even programs) are
encoded and stored using 1s and 0s.
• When more than a single byte is needed, several
adjacent bytes are used.
• The address of the first byte is the address of the unit of
bytes.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Files

• Large groups of bytes in auxiliary memory are called


files.
• Files have names.
• Files are organized into groups called directories or
folders.
• Java programs are stored in files.
• Programs files are copied from auxiliary memory to
main memory in order to be run.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
0s and 1s

• Machines with only 2 stable states are easy to


make, but programming using only 0s and 1s is
difficult.
• Fortunately, the conversion of numbers, letters,
strings of characters, audio, video, and programs is
done automatically.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Programs

• A program is a set of instructions for a computer to


follow.
• We use programs almost daily (email, word
processors, video games, bank ATMs, etc.).
• Following the instructions is called running or
executing the program.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Input and Output

• Normally, a computer receives two kinds of input:


• The program
• The data needed by the program.
• The output is the result(s) produced by following
the instructions in the program.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Running a Program
• Figure 1.2

• Sometimes the computer and the program are considered to be


one unit.
• Programmers typically find this view to be more convenient.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
The Operating System

• The operating system is a supervisory program that


oversees the operation of the computer.
• The operating system retrieves and starts program
for you.
• Well-known operating systems including: Microsoft
Windows, Apple’s Mac OS, Linux, and UNIX.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Programming Languages

• High-level languages are relatively easy to use


• Java, C#, C++, Visual Basic, Python, Ruby.
• Unfortunately, computer hardware does not
understand high-level languages.
• Therefore, a high-level language program must be
translated into a low-level language.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Compilers

• A compiler translates a program from a high-level


language to a low-level language the computer can
run.
• You compile a program by running the compiler on
the high-level-language version of the program
called the source program.
• Compilers produce machine- or assembly-language
programs called object programs.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Compilers

• Most high-level languages need a different compiler


for each type of computer and for each operating
system.
• Most compilers are very large programs that are
expensive to produce.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Java Byte-Code

• The Java compiler does not translate a Java


program into assembly language or machine
language for a particular computer.
• Instead, it translates a Java program into byte-code.
• Byte-code is the machine language for a hypothetical computer (or
interpreter) called the Java Virtual Machine.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Java Byte-Code
• A byte-code program is easy to translate into machine
language for any particular computer.
• A program called an interpreter translates each byte-code
instruction, executing the resulting machine-language
instructions on the particular computer before translating the
next byte-code instruction.
• Most Java programs today are executed using a Just-In-Time or
JIT compiler in which byte-code is compiled as needed and
stored for later reuse without needing to be re-compiled.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Compiling, Interpreting, Running

• Use the compiler to translate the Java program into


byte-code (done using the javac command).
• Use the Java virtual machine for your computer to
translate each byte-code instruction into machine
language and to run the resulting machine-language
instructions (done using the java command).

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Portability

• After compiling a Java program into byte-code, that


byte-code can be used on any computer with a
byte-code interpreter and without a need to
recompile.
• Byte-code can be sent over the Internet and used
anywhere in the world.
• This makes Java suitable for Internet applications.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Class Loader

• A Java program typically consists of several pieces


called classes.
• Each class may have a separate author and each is
compiled (translated into byte-code) separately.
• A class loader (called a linker in other programming
languages) automatically connects the classes
together.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Compiling and Running a Program
• Figure 1.3

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
A Sip of Java: Outline
• History of the Java Language
• Applications and Applets
• A First Java Application Program
• Writing, Compiling, and Running a Java
Program

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
History of Java

• In 1991, James Gosling and Sun Microsystems


began designing a language for home appliances
(toasters, TVs, etc.).
• Challenging, because home appliances are controlled by
many different chips (processors)
• Programs were translated first into an intermediate
language common to all appliance processors.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
History of Java

• Then the intermediate language was translated into the


machine language for a particular appliance’s processor.
• Appliance manufacturers weren’t impressed.

• In 1994, Gosling realized that his language would be


ideal for a Web browser that could run programs
over the Internet.
• Sun produced the browser known today as HotJava.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Applications and Applets

• Two kinds of java programs: applications and


applets
• Applications
• Regular programs
• Meant to be run on your computer
• Applets
• Little applications
• Meant to be sent to another location on the internet and
run there
• Deprecated by Oracle and not supported by many web
browsers today in favor of HTML5 and JavaScript

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
A First Java Application
• View sample program Listing 1.1
• class FirstProgram

Sample
Sample
screen
screen
output
output

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Some Terminology

• The person who writes a program is called the


programmer.
• The person who interacts with the program is called
the user.
• A package is a library of classes that have been
defined already.
• import java.util.Scanner;

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Some Terminology

• The item(s) inside parentheses are called


argument(s) and provide the information needed by
methods.
• A variable is something that can store data.
• An instruction to the computer is called a
statement; it ends with a semicolon.
• The grammar rules for a programming language are
called the syntax of the language.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Printing to the Screen

System.out.println (“Whatever you want to print”);

• System.out is an object for sending output to the


screen.
• println is a method to print whatever is in
parentheses to the screen.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Printing to the Screen

• The object performs an action when you invoke or call


one of its methods

objectName.methodName(argumentsTheMethodNeeds);

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Compiling a Java Program or Class

• A Java program consists of one or more classes, which


must be compiled before running the program.
• You need not compile classes that accompany Java
(e.g. System and Scanner).
• Each class should be in a separate file.
• The name of the file should be the same as the name
of the class.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Compiling and Running

• Use an IDE (integrated development environment)


which combines a text editor with commands for
compiling and running Java programs.
• When a Java program is compiled, the byte-code
version of the program has the same name, but the
ending is changed from .java to .class.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Compiling and Running

• A Java program can involve any number of classes.


• The class to run will contain the words

public static void main(String[] args)

somewhere in the file

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Programming Basics: Outline
• Object-Oriented Programming
• Algorithms
• Testing and Debugging
• Software Reuse

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Programming

• Programming is a creative process.


• Programming can be learned by discovering the
techniques used by experienced programmers.
• These techniques are applicable to almost every
programming language, including Java.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Object-Oriented Programming

• Our world consists of objects (people, trees, cars,


cities, airline reservations, etc.).
• Objects can perform actions which affect themselves
and other objects in the world.
• Object-oriented programming (OOP) treats a program
as a collection of objects that interact by means of
actions.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
OOP Terminology

• Objects, appropriately, are called objects.


• Actions are called methods.
• Objects of the same kind have the same type and
belong to the same class.
• Objects within a class have a common set of methods and
the same kinds of data
• but each object can have it’s own data values.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
OOP Design Principles

• OOP adheres to three primary design


principles:
• Encapsulation
• Polymorphism
• Inheritance

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Introduction to Encapsulation

• The data and methods associated with any


particular class are encapsulated (“put together in a
capsule”), but only part of the contents is made
accessible.
• Encapsulation provides a means of using the class, but it
omits the details of how the class works.
• Encapsulation often is called information hiding.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Accessibility Example

• An automobile consists of several parts and pieces


and is capable of doing many useful things.
• Awareness of the accelerator pedal, the brake pedal, and
the steering wheel is important to the driver.
• Awareness of the fuel injectors, the automatic braking
control system, and the power steering pump is not
important to the driver.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Introduction to Polymorphism
• From the Greek meaning “many forms”
• The same program instruction adapts to mean
different things in different contexts.
• A method name, used as an instruction, produces results
that depend on the class of the object that used the
method.
• Everyday analogy: “take time to recreate” causes
different people to do different activities
• More about polymorphism in Chapter 8

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Introduction to Inheritance

• Figure 1.4

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Introduction to Inheritance

• Classes can be organized using inheritance.


• A class at lower levels inherits all the
characteristics of classes above it in the hierarchy.
• At each level, classifications become more
specialized by adding other characteristics.
• Higher classes are more inclusive; lower classes are
less inclusive.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Inheritance in Java

• Used to organize classes


• “Inherited” characteristics do not need to be
repeated.
• New characteristics are added.
• More about inheritance in chapter 8

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Algorithms

• By designing methods, programmers provide


actions for objects to perform.
• An algorithm describes a means of performing an
action.
• Once an algorithm is defined, expressing it in Java
(or in another programming language) usually is
easy.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Algorithms
• An algorithm is a set of instructions for solving a
problem.
• An algorithm must be expressed completely and
precisely.
• Algorithms usually are expressed in English or in
pseudocode.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Example: Total Cost of All Items

• Write the number 0 on the whiteboard.


• For each item on the list
• Add the cost of the item to the number on the whiteboard
• Replace the number on the whiteboard with the result of
this addition.
• Announce that the answer is the number written on
the whiteboard.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Reusable Components
• Most programs are created by combining
components that exist already.
• Reusing components saves time and money.
• Reused components are likely to be better
developed, and more reliable.
• New components should designed to be reusable
by other applications.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Testing and Debugging

• Eliminate errors by avoiding them in the first place.


• Carefully design classes, algorithms and methods.
• Carefully code everything into Java.
• Test your program with appropriate test cases
(some where the answer is known), discover and fix
any errors, then retest.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Errors
• An error in a program is called a bug.
• Eliminating errors is called debugging.
• Three kinds or errors
• Syntax errors
• Runtime errors
• Logic errors

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Syntax Errors

• Grammatical mistakes in a program


• The grammatical rules for writing a program are very
strict
• The compiler catches syntax errors and prints an
error message.
• Example: using a period where a program expects a
comma

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Runtime Errors

• Errors that are detected when your program is


running, but not during compilation
• When the computer detects an error, it terminates
the program and prints an error message.
• Example: attempting to divide by 0

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Logic Errors

• Errors that are not detected during compilation or


while running, but which cause the program to
produce incorrect results
• Example: an attempt to calculate a Fahrenheit
temperature from a Celsius temperature by
multiplying by 9/5 and adding 23 instead of 32

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Software Reuse

• Programs not usually created entirely from scratch


• Most contain components which already exist
• Reusable classes are used
• Design class objects which are general
• Java provides many classes
• Note documentation on following slide

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Software Reuse

Description of class
Scanner

Package
names

Class names

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Graphics Supplement: Outline

• A Sample JavaFX program


• Drawing Ovals and Circles
• Size and Position of Figures
• Drawing Arcs

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
JavaFX
• JavaFX is a set of packages that allow Java programmers
to create graphics and media applications
• 2D, 3D games
• Visual effects
• Touch-enabled applications
• Successor to AWT and Swing for making graphical
applications

• In JavaFX you add scenes to the stage. A canvas is an object


that you can draw shapes on.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
A Sample JavaFX Application
• View sample program Listing 1.2
• class HappyFace

Sample
Sample
screen
screen
output
output

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
A Sample JavaFX Application

• The start method is the starting method for a


JavaFX application, not the main method
• The first four lines of the start method set up a
canvas on a scene for you to draw simple graphics

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Screen Coordinate System
• Figure 1.6

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Screen Coordinate System

• The x-coordinate the the number of pixels


from the left.
• The y-coordinate is the number of pixels from
the top (not from the bottom).

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Drawing Ovals and Circles

• The strokeOval method draws only the outline


of the oval.
gc.strokeOval(100, 50, 90, 50);
• The fillOval method draws a filled-in oval.
gc.fillOval(100, 50, 90, 50);

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Drawing Ovals and Circles

• The strokeOval and fillOval methods take


four arguments.
• The first two arguments indicate the upper-left corner of an
invisible rectangle around the oval.
• The last two arguments indicate the width and height of the
oval.
• A circle is just an oval whose height is the same as its
width.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Drawing Ovals and Circles

• Figure1.7 The Oval Drawn by gc.strokeOval(100,


50, 90, 50)

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Size and Positions of Figures

• Sizes and positions in a JavaFX program are given


in pixels.
• Think of the display surface for the applet as
being a two-dimensional grid of individual pixels.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Drawing Arcs

• The strokeArc method draws an arc.


strokeArc(100, 50, 200, 200, 180, 180,
ArcType.OPEN);
• The strokeArc method takes seven arguments.
• The first four arguments are the same as the four
arguments needed by the strokeOval method.
• The next two arguments indicate where the arc starts,
and the number of degrees through which is sweeps.
• 0 degrees is horizontal and to the right.
• The last argument indicates if the arc is open or closed

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Specifying an Arc

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Specifying an Arc

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved
Summary

• You have completed an overview of computer


hardware and software.
• You have been introduced to program design and
object-oriented programming.
• You have completed an overview of the Java
programming language.
• You have been introduced to JavaFX and graphics
basics.

JAVA: An Introduction to Problem Solving & Programming, 8th Ed. By Walter Savitch
ISBN 0134462033 © 2018 Pearson Education, Inc., Hoboken, NJ. All Rights Reserved

You might also like