118 animasi pada JAVA
dilakukan program dan delay.
Contoh 2. Membuat A
To change this and open the te
package gambarjava
http:javalfi.blo gerak.html;
import java .
awt .;
import java .
util .
l import java
.
util
.
l publicclass
gambar atap rumah
int x
[]= new
int []{
9 int
y
[]= new
int
[]{
2 jalan
int a
[]= new
int
[]{
5 int
b []=
new int
[]{ 2
garis jalan atas int
e []=
new int
[]{ 5
int f
[]= new
int []{
2 garis jalan teng
int c
[]= new
int []{
4 int
d
[]= new
int
[]{
3 garis jalan bawa
int g
[]= new
int
[]{
3 int
h []=
new int
[]{ 4
public gambarJava
setBackgro dengan set warna s
}
publicvoid paint
G rumput tanah
k .
setColor manual
A dengan langsung menentukan proses a an berapa lama waktu tunggu menuju prose
t Animasi Teks dengan Thread
template, choose Tools | Templates emplate in the editor.
a ;
diperoleh ogspot.co.id201210membuat-animasi-
;
logging .
Level ;
logging
.
Logger
;
rJava extends Panel {
90 ,
150 ,
210 };
x1,x2,x3 260
,
200
,
260
};
y1,y2,y3 584
,
240
,
413
,
584
};
x1,x2,x3,x4 200
, 460
, 460
, 320
}; y1,y2,y3,y4
s 537
, 563
, 573
, 547
}; x1,x2,x3,x4
280 ,
260 ,
260 ,
280 };
y1,y2,y3,y4 gah
442 ,
468 ,
478 ,
452 };
x1,x2,x3,x4 360
,
340
,
340
,
360
};
y1,y2,y3,y4 ah
337
,
363
,
373
,
347
};
x1,x2,x3,x4 450
, 430
, 430
, 450
}; y1,y2,y3,y4
{
constructor ound
new Color
207 ,
245 ,
243 ;
setBa secara manual
Graphics k {
method paint r
new Color
130 ,
235 ,
24 ;
setColor
s apa yang ses tersebut
dari i-gambar-
ackground
r secara
k .
fil matahari
k .
set kuning
k .
fil x,
karena memben membuat g
Threa sebuah pengon
for int
i =
1 ;
dengan warna menimpa gamba
awan secara manual
70,40 adalah agar fillOval
if
i
==
70
{
atau awan kem
} try
{ tambahk
kecepatan ger
} catch
Interr Logger
.
getLog
, null
, ex
; }
atap rumah k
. set
manual k
. fil
jumlah titikn cahaya mata
k .
set manual
k .
dra k
. dra
k
.
dra k
. dra
k .
dra llRect
, 200
, 584
, 262
;
tColor Color
. yellow
; setColor
men llOval
430 ,
50 ,
80 ,
80 ;
,y maksudnya 80,80 adalah lebar bul ntuk lingkaran sempurna
gambar gerak ad t
= new
Thread
;
Sebuah thre ntrol aliran program
i =
70 ;
i ++{
k .
setColor new
Color 207
, 245
, 243
yang sama dengan warna langit k
.
fillRect
, ,
300
,
200
;
buat fi ar awan yang bergerak
k
.
setColor
new
Color 96
,
213
,
207 l
k .
fillOval 120
+ i
, 60
, 70
, 40
; x,y
agar bentuknya tidak bulat sempurna k
.
fillOval 140
+
i
,
70
,
70
,
40
;
x+i l bergerak ke arah kanan
k .
fillOval 100
+ i
, 70
, 70
, 40
;
k
.
fillOval 160
+
i
,
60
,
70
,
40
;
k .
fillOval 60
+ i
, 70
, 70
, 40
;
k .
fillOval 80
+ i
, 50
, 70
, 40
;
jika i sudah mencapai titik 70 i
= 1
; maka i akan kembali
mbali ke titik semula kan blok try-catch
t .
sleep 50
; sleep digunakan un
rak. Harus menggunakan blok try-catch ruptedException ex
{
gger gambarJava
.
class
.
getName
.
log
tColor new
Color 177
, 115
, 29
; setC
llPolygon x
, y
, 3
; membuat fillPo
nya 3, mengambil array dari x[] dan y ahari
tColor new
Color 245
, 135
, 14
; setC
awLine 430
, 90
, 380
, 90
; garis kiri
awLine 440
, 60
, 380
, 30
; garis kiri at
awLine 440
,
120
,
380
,
150
;
garis kiri awLine
560 ,
90 ,
510 ,
90 ;
garis kanan awLine
560 ,
30 ,
500 ,
60 ;
garis kanan a
119
enjadi warna
latannya, sama
ead merupakan 3
; setColor
fillRect untuk 7
;
setColor maksudnya
ouval maksudnya
i ke titik 1
ntuk mengatur h
Level
. SEVERE
tColor secara olygon dengan
y[] tColor secara
tas bawah
atas
120
k .
drawLine k
.
drawLine k
. drawLine
dinding k
. setColor
manual k
.
fillRect lalu lebarnya,ting
pintu k
.
setColor manual
k .
fillRect lebarnya,tingginya
gagang pintu k
.
setColor manual
k
.
fillOval koordinat x,y lalu
jalan k
.
setColor manual
k .
fillPoly jumlah titiknya 4,
garis jalan k
.
setColor manual
k .
fillPoly jumlah titiknya 4,
k .
fillPoly jumlah titiknya 4,
k
.
fillPoly jumlah titiknya 4,
} }
publicstaticvoid m
Frame f1 =
gambarJava gambarJava
f1 .
add H
;
f1 .
setSize f1
.
setVisi window dapat tampi
} }
e 560
, 150
, 500
, 120
; garis kanan bawa
e 470
,
10
,
470
,
50
;
garis atas e
470 ,
130 ,
470 ,
170 ;
garis bawah r
new Color
67 ,
177 ,
114 ;
setColor t
100
,
260
,
100
,
200
;
titik koordin
gginya r
new
Color 252
,
176
,
63
;
setColor t
150 ,
370 ,
50 ,
90 ;
titik koordinat x a
r
new
Color 92
,
86
,
39
;
setColor l
185
,
415
,
10
,
10
;
menentukan u lebar dan tinggi bulatan
r
new
Color 97
,
111
,
96
;
setColor ygon
a ,
b ,
4 ;
membuat fillPolygon , mengambil array dari a[] dan b[]
r
new
Color 255
,
255
,
255
;
setColor ygon
c ,
d ,
4 ;
membuat fillPolygon , mengambil array dari c[] dan d[]
ygon e
, f
, 4
; membuat fillPolygon
, mengambil array dari e[] dan f[] ygon
g
,
h
,
4
;
membuat fillPolygon
, mengambil array dari g[] dan h[]
main String
[]
args
{ =
new Frame
; instansiasi class Fram
a H =
new gambarJava
; instansias
;
e 600
, 500
; setSize window
ible
true ;
setVisible menjadi tr il
wah
r secara nat
x,y
r secara x,y lalu
secara titik
secara n dengan
r secara n dengan
n dengan n dengan
ame si class
rue agar
Output Membuat A
Gamba
D. Aktivitas Pe
17. Buat Kela 18. Import be
import import
import import
19. Buat met delay
. Tu
method pa
G .
setColor Color
. black
; warna jam
int Panjang
; if
getWidth getHeight
Panjang =
getWidth -
100 ;
else Panjang
= getHeight
- 100
; G
. drawOval
PX -
Panjang 2
, PY
-
Panjang 2
, Panjang
, Panjang
;
float Detik
= Waktu
Calendar .
SECOND +
float Waktu
Calendar .
MILLISE COND
1000 ;
G .
drawLine PX
, PY
, int
PX +
Math .
sin 2
Math .
PI Detik
60 Pa
njang 2
, int
PY +-
1 Math
. cos
2 Math
. PI
Detik 60
Panjang 2
;
t Animasi Teks
bar 5. 5 tampilan hasil running animasi program
s Pembelajaran
elas Java dengan nama Latihan8.java beberapa komponen library yang diperluka
java .
awt .;
java .
awt .
event .;
java
.
util
.
Calendar
; java
.
util
.
Random
;
ethod paint dengan isi berupa garis yang m
Tuliskan Source Code berikut untuk membu paint
G .
setColor Color
. black
; warna jam
int Panjang
; if
getWidth getHeight
Panjang =
getWidth -
100 ;
else Panjang
= getHeight
- 100
; G
. drawOval
PX -
Panjang 2
, PY
-
Panjang 2
, Panjang
, Panjang
;
float Detik
= Waktu
Calendar .
SECOND +
float Waktu
Calendar .
MILLISE COND
1000 ;
G .
drawLine PX
, PY
, int
PX +
Math .
sin 2
Math .
PI Detik
60 Pa
njang 2
, int
PY +-
1 Math
. cos
2 Math
. PI
Detik 60
Panjang 2
;
121 ram
kan
g memiliki waktu
buat objek pada
G .
setColor Color
. black
; warna jam
int Panjang
; if
getWidth getHeight
Panjang =
getWidth -
100 ;
else Panjang
= getHeight
- 100
; G
. drawOval
PX -
Panjang 2
, PY
-
Panjang 2
, Panjang
, Panjang
;
float Detik
= Waktu
Calendar .
SECOND +
float Waktu
Calendar .
MILLISE COND
1000 ;
G .
drawLine PX
, PY
, int
PX +
Math .
sin 2
Math .
PI Detik
60 Pa
njang 2
, int
PY +-
1 Math
. cos
2 Math
. PI
Detik 60
Panjang 2
;
122
20. Secara garis besar
package latihan8 ;
import java .
awt .;
import java .
awt .
event .;
import java .
util .
Calendar ;
import java .
util .
Random ;
publicclass Latihan8 extends Frame
{
privateint PX
, PY
, xorR
, xorG
, xorB
;
Random Rdm ;
public Latihan8
{
super Waktu Detik
;
setLayout new
FlowLayout ;
setSize 800
, 600
;
addWindowListener new
WindowListener {
publicvoid windowActivated
WindowEvent e {}
publicvoid windowClosed
WindowEvent e {}
publicvoid windowClosing
WindowEvent e {
System .
exit ;
}
publicvoid windowDeactivated
WindowEvent e {}
publicvoid windowDeiconified
WindowEvent e {}
publicvoid windowIconified
WindowEvent e {}
publicvoid windowOpened
WindowEvent e {}
};
Rdm =
new java
. util
. Random
;
setBackground Color
. white
; new
javax .
swing .
Timer 1000
, new
ActionListener {
mengatur kecepatan detik 1 detik 1000 ms
publicvoid actionPerformed
ActionEvent ev {
repaint ;
PX =
getWidth 2
; PY
= getHeight
2 ;
xorR =
Rdm .
nextInt 255
;
xorG =
Rdm .
nextInt 255
;
xorB =
Rdm .
nextInt 255
; }
}. start
; }
publicstaticvoid main
String []
a {
new Latihan8
. setVisible
true ;
}
publicvoid paint
Graphics G {
G .
setColor Color
. black
; warna jam
int Panjang
; if
getWidth getHeight
Panjang =
getWidth -
100 ;
else Panjang
= getHeight
- 100
; G
. drawOval
PX -
Panjang 2
, PY
- Panjang
2 ,
Panjang ,
Panjang ;
float Detik
= Waktu
Calendar .
SECOND +
float Waktu
Calendar .
MILLISECOND
ar, isi kelas Latihan8.java adalah sebagai b
package latihan8 ;
import java .
awt .;
import java .
awt .
event .;
import java .
util .
Calendar ;
import java .
util .
Random ;
publicclass Latihan8 extends Frame
{
privateint PX
, PY
, xorR
, xorG
, xorB
;
Random Rdm ;
public Latihan8
{
super Waktu Detik
;
setLayout new
FlowLayout ;
setSize 800
, 600
;
addWindowListener new
WindowListener {
publicvoid windowActivated
WindowEvent e {}
publicvoid windowClosed
WindowEvent e {}
publicvoid windowClosing
WindowEvent e {
System .
exit ;
}
publicvoid windowDeactivated
WindowEvent e {}
publicvoid windowDeiconified
WindowEvent e {}
publicvoid windowIconified
WindowEvent e {}
publicvoid windowOpened
WindowEvent e {}
};
Rdm =
new java
. util
. Random
;
setBackground Color
. white
; new
javax .
swing .
Timer 1000
, new
ActionListener {
mengatur kecepatan detik 1 detik 1000 ms
publicvoid actionPerformed
ActionEvent ev {
repaint ;
PX =
getWidth 2
; PY
= getHeight
2 ;
xorR =
Rdm .
nextInt 255
;
xorG =
Rdm .
nextInt 255
;
xorB =
Rdm .
nextInt 255
; }
}. start
; }
publicstaticvoid main
String []
a {
new Latihan8
. setVisible
true ;
}
publicvoid paint
Graphics G {
G .
setColor Color
. black
; warna jam
int Panjang
; if
getWidth getHeight
Panjang =
getWidth -
100 ;
else Panjang
= getHeight
- 100
; G
. drawOval
PX -
Panjang 2
, PY
- Panjang
2 ,
Panjang ,
Panjang ;
float Detik
= Waktu
Calendar .
SECOND +
float Waktu
Calendar .
MILLISECOND
i berikut:
package latihan8 ;
import java .
awt .;
import java .
awt .
event .;
import java .
util .
Calendar ;
import java .
util .
Random ;
publicclass Latihan8 extends Frame
{
privateint PX
, PY
, xorR
, xorG
, xorB
;
Random Rdm ;
public Latihan8
{
super Waktu Detik
;
setLayout new
FlowLayout ;
setSize 800
, 600
;
addWindowListener new
WindowListener {
publicvoid windowActivated
WindowEvent e {}
publicvoid windowClosed
WindowEvent e {}
publicvoid windowClosing
WindowEvent e {
System .
exit ;
}
publicvoid windowDeactivated
WindowEvent e {}
publicvoid windowDeiconified
WindowEvent e {}
publicvoid windowIconified
WindowEvent e {}
publicvoid windowOpened
WindowEvent e {}
};
Rdm =
new java
. util
. Random
;
setBackground Color
. white
; new
javax .
swing .
Timer 1000
, new
ActionListener {
mengatur kecepatan detik 1 detik 1000 ms
publicvoid actionPerformed
ActionEvent ev {
repaint ;
PX =
getWidth 2
; PY
= getHeight
2 ;
xorR =
Rdm .
nextInt 255
;
xorG =
Rdm .
nextInt 255
;
xorB =
Rdm .
nextInt 255
; }
}. start
; }
publicstaticvoid main
String []
a {
new Latihan8
. setVisible
true ;
}
publicvoid paint
Graphics G {
G .
setColor Color
. black
; warna jam
int Panjang
; if
getWidth getHeight
Panjang =
getWidth -
100 ;
else Panjang
= getHeight
- 100
; G
. drawOval
PX -
Panjang 2
, PY
- Panjang
2 ,
Panjang ,
Panjang ;
float Detik
= Waktu
Calendar .
SECOND +
float Waktu
Calendar .
MILLISECOND
1000 ;
G .
drawLine PX
, PY
, int
PX +
Math .
sin 2
Math .
PI Detik
60 Panjan
g 2
, int
PY +-
1 Math
. cos
2 Math
. PI
Detik 60
Panjang 2
; }
privateint Waktu
int Jenis
{ return
Calendar .
getInstance .
get Jenis
; }
}
21. Melihat jalann
E. LatihanKasu
Buatlah suat jam analog
harus mamp detik maka
Interval dari j analog seper
Contoh Tampi
1000 ;
G .
drawLine PX
, PY
, int
PX +
Math .
sin 2
Math .
PI Detik
60 Panjan
g 2
, int
PY +-
1 Math
. cos
2 Math
. PI
Detik 60
Panjang 2
; }
privateint Waktu
int Jenis
{ return
Calendar .
getInstance .
get Jenis
; }
}
nnya program
Gambar 5. 6 Jalannya program detik
Kasus Tugas
atu objek jam analog yang mampu beroperasi g yang ditempelkan pada jam-jam dinding.
pu melakukan rotasi jarum 1 detik dan jika a jarum menit akan bergerak selayaknya
ri jam tersebut harus sesuai dengan interval d erti biasanya.
pilan Program
123
1000 ;
G .
drawLine PX
, PY
, int
PX +
Math .
sin 2
Math .
PI Detik
60 Panjan
g 2
, int
PY +-
1 Math
. cos
2 Math
. PI
Detik 60
Panjang 2
; }
privateint Waktu
int Jenis
{ return
Calendar .
getInstance .
get Jenis
; }
}
rasi selayaknya . Jam tersebut
a mencapai 60 a jam analog.
l detik pada jam
124 Gam
F. Rangkuman
Transformasi ad telah dibuat pada suatu
yaitu translasi, rotasi d posisi perspektif verte
Method yang diguna
translatex,y.
Rotasi suatu objek dengan 1
digunakan untuk melak
rotatex.
suatu perubahan uku perubahan tersebut b
menjadi lebih besar.
scalex,y
. Untuk m bahasa JAVA dapat m
paint
telah mendeklarasikan Animasi pada
perulangan dan meng animasi melalui kedua
dalam satuan milise memproses suatu pro
program yang dieksek Thread dalam memun
ambar 5. 7 Jalannya program jam
adalah perubahan yang terjadi pada objek gam atu frame. Perubahan tersebut dibagi menjadi
si dan skala scalling. Translasi adalah suatu p ertex x atau y yang terjadi pada objek yan
nakan untuk melakukan translasi adalah
translatex,y.
tasi adalah suatu perubahan posisi berupa be 1 titik inti sebesar beberapa derajat. Met
lakukan rotasi adalah
rotatex.
Skala scallin kuran yang terjadi pada objek yang tela
t berupa perubahan lebih kecil ataupun p sar. Method yang digunakan untuk scallin
scalex,y
mengimplementasikan transformasi tersebu t melakukan modifikasi terhadap method
paint
an pada objek yang dibuat. a bahasa JAVA dapat dilakukan dengan 2
enggunakan Thread. Secara umum, untuk dua metode tersebut, harus menampilkan d
liseconds. Thread merupakan suatu meto roses program dengan cara mengakses sua
sekusi secara urut ataupun bersamaan. Pe ungkinkan seorang pembuat program dapat m
ambar yang di 3 macam,
u perubahan yang dibuat.
lah method
translatex,y.
berputarnya ethod yang
rotatex.
lling adalah elah dibuat,
perubahan lling adalah
scalex,y
sebut, dalam
paint
yang 2 metode,
k membuat delay time
tode untuk suatu modul
Penggunaan t melakukan