صفحه 1:
Pee DLs re) Ste Sy
Java)
er ال
صفحه 2:
رنگهای استاندارد
"" نكته: رنك رو زمينه را با استفاده از يكى از روشهاى زير تعيين مى كنيم.
;screen.setColor(Color.pink)
;Color brush = new Color(255, 204, 102)
j;screen.setColor(brush)
"! نكته: براى تعيين رنكق يشت زمينه از متد 101012601 ©»1 ©1836 056)
استفاده مى كنيم.
eS iid لا ل ا ا 0
بااين تفاوت كه اين متد رنك يك ينجره يا يك دكمه را تعيين مى كند.
۱
وال کت ۱۳
یو بت تیا با 61۳0۲69۲0۷ 9() کلاس
1 د youre
صفحه 3:
Graphics2D «4
۱9 eprerr a Cl e-) 0) 1] (o- 7-4 Dea Le) IY Bellas
مى كنيم.
public void paint(Graphics screen)
1
os
Graphics2D screen2D =
;(Graphics2D)screen
1
1
صفحه 4:
الكوهاى ترسيم
۱
ال رم ۱
توانید رنگهای ساده. سایه روشن, یا دارای بافت را به کار
Pepe ce) Eee) ات۵(
Ryn Ren Cle) Lil (agra cy
صفحه 5:
Gradient paw 5 69S!
" ۳ ترسیم ۲ دهو رنگ متفاوت براى دو
See) Be OC yew ee HEI) لل
ا ا ال اا ا ل CO Ae
دو صورت 26۷6116 و 6۷116 قابل استفاده است.
صفحه 6:
* متد سازنده 6۲80161۱۲۳61۳۲ به صورت زیر است.
GradientPaint(x1, y1, color1, x2, y2,
;color2, true)
se ee Caner Fire Re eens ال pow Tg es
در صورتی که از این آر گومان استفاده شود الگوی ترسیم به
صورت ©11علإ© ۱
liad ل See ليا ل 2 م
۲( الگوی ترسیم جاری را تفییر می دهیم.
GradientPaint pat = new
GradientPaint(0Of, Of, Color.white,
5100f, 45f,Color.blue)
»Screen2D.setPaint(pat)
صفحه 7:
نكات
Re EVI ا ل ا roiled
0 اي ال
کرد. برای این منظور از متد 565۲016() و کلاس
استفاده می شود. 06
و ل ل 0 ل 0
زیر می باشد.
"" يك مقدار 50131 به عنوان يهناى خط با مقدار ييش فرض يك
000 Sore ا hee eis
POSE Ce Fe ee Sa) ri Fn Emeve sae ped (1 bee
صفحه 8:
* عبارات زیر یک شیء 88565170166 ایجاد می کند و آن
ee ECO) ats nee) ۱
BasicStroke pen = BasicStroke(2.0f,
,BasicStroke.CAP_BUTT
;(BasicStroke.JOINROUND
;Screen2D.setStroke(pen)
صفحه 9:
yrs
ایجاد خطوط در حالت دو بعدی با استفاده از کلاس *
blo YeUS gpl 245 oc ا
Bele epee pyres Sie) rar ry yc ere
Line2D.Float In = new
;Line2D.Float(60F, 5F, 13F, 28F)
"" نكته: اكر بعد از آركومانها از كاراكتر '! استفاده نشود.
ar Caps recy ل ل ل
صفحه 10:
چهار ضلعی
و 1
ع ا با
ل ا 0
اين دو كلاس در نوع آركومانهايشان است, در واقع كلاس
۲ ار گومانهای float 9
دار ۳
پذیرد.
Cad ا ل ا 7۲
ep) ere Arce see age | ارلا ل انا
Rectangle2D.Float rc = new
Rectangle2D.Float(10F, 13F, 40F,
AF
صفحه 11:
بیضی و دایره
0
ل ا ا 0
Lee TB ا ۳
"5
Ellipse2D.Float ee = new
;Ellipse2D.Float(113, 25, 22, 40)
صفحه 12:
Arc : yhs
1d (ge 0dtew! ArC2D. Float oS jl oS sku! sly ™
این کلاس دارای هفت آر گومان به صورت زیر می باشد.
Arc2D.Float Object_name = new
Arc2D.Float(x, y, width, height,
Start_degree, Traveled_degree,
;Closing_method)
شش آر گومان اول را قبلً بررسی کردیم. آر گومان هفتم نحوه ی #
۳ Pee a) خاتمه کمان را
Arc2D.Float arc = new Arc2D.Float(27,
722, 30, 33, 90, Arc2D.PIE)
صفحه 13:
جند ضلعى
و 320
0 ابجاد کنیم.
;0GeneralPath polly = new GeneralPath
* پس از آن با استفاده از متد۲00۷6۲0() اولین نقطه را ایجاد می کنیم.
;Polly.moveTo(5F, OF)
و
;polly.lineTo(205F, OF)
;polly.lineTo(205F, 90F)
Se Tad ل PRCA Bee SBC)
;Qpolly.closePath
صفحه 14:
نکات و منال
eta Meal eee Cents Dingo be ات وا ل
1 استفاده می شود.
;x.import java.awt
;ximport java.awt.geom
public class Map2D extends
} java.applet.Applet
} public void paint(Graphics screen)
Graphics2D screen2D =
;(Graphics2D)screen
;setBackground(Color.blue)
Draw waves //
j;screen2D.setColor(Color.white)
,BasicStroke pen = new BasicStroke(2F
RacicGtrnlkea CAP RIITT.
صفحه 15:
;screen2D.setStroke(pen)
for (int ax = 10; ax < 340; ax += 10)
} for (int ay = 30; ay < 340; ay += 10)
Arc2D.Float wave = new
Arc2D.Float(ax, ay, 10, 10, 0, 180,
;Arc2D.OPEN)
;screen2D.draw(wave)
Draw Florida //
GradientPaint gp = new
GradientPaint(OF,0F,Color.green, 50F, 50F,
;Color.orange,true)
;screen2D.setPaint(gp)
;()GeneralPath fl = new GeneralPath
صفحه 16:
fl.moveTo(10F,12F);
fl.lineTo(234F,15F);
fl.lineTo(253F,25F);
fl.lineTo(261F,71F);
fl.lineTo(344F,209F);
fl.lineTo(336F,278F);
fl.lineTo(295F,310F);
fl.lineTo(259F,274F);
fl.lineTo(205F,188F);
fl.lineTo(211F,171F);
fl.lineTo(195F,174F);
fl.lineTo(191F,118F);
fl.lineTo(120F,56F);
fl.lineTo(94F,68F);
fl.lineTo(81F,49F);
fl.lineTo(12F,37F);
fl.closePath();
screen2D.fill(fl);
صفحه 17:
Draw ovals //
;screen2D.setColor(Color.black)
;()BasicStroke pen2 = new BasicStroke
;screen2D.setStroke(pen2)
Ellipse2D.Float el = new
;Ellipse2D.Float(235,140,15,15)
Ellipse2D.Float رتیت
;Ellipse2D.Float(225, =. 15,15)
Ellipse2D.Float e3 =
)15,15 150 ا ا لتك
;screen2D. fill(e1)
‘screen2D.fill(e2)
;screen2D.fill(e3)
{
i
صفحه 18:
لا
ا 0
است
ا ا 20
00 res) Cores ae 1 eB T ENG |S) en
dol ys
صفحه 19:
کنترل تصاویر متحرک به کمک ۲۱۲۵۵0 ها
2 اللا aCe eee eke Bee i
باشد. با استفاده از ۲۱۲6۵0 می توان بیش از یک
وظيفه(1351) را درون برنامه اجرا كرد. با قرار دادن كد مربوط
به بار گذاری انیمیشن ا قسمتهای برنامه
۱
دیگری را انجام دهند.
* برای نوشتن اپلتها با استفاده از 0۲6۵0 ]ها باید اعمال زیر را
انجام دهيم.
صفحه 20:
ern on eos reer لا
* افزودن عبارت ۳۷۳۳۵۳۵۱6 1۳0۵۱6۴۱6۳۲
* ایجاد یک شیء Thread
ات0 ۱1۱
" 017:10 كردنمتد 5800( زو م2 و۱7۳
حللاجرا
ا ا ا ا ا Per
شود.
public class AppletName extends
درا رزیت ات۱۱2۰
Applet Core//
1
صفحه 21:
نكات
* کلاس Le تما 2۷29 قرار Srey) 0 0
نیازی به استفاده از 1۲00۲ برای بار گذاری آن نداریم.
لك اي ey
اینجا واسط RuNNable توسط کلاسی که به عنوان ۲0۲680 عمل
می کند. پیاده سازی می شود.
"" نكته: براى ايجاد يك 11916261 ابتدا بايد متغيرى از نوع 71192162601
panera spe
;Thread runner
er ke ۳ ا ا يا ل ا Cee Ae Ry
apes ل ا PP Pe SIC Peon) | Melis
0 به صورت زير عمل می کنیم.
صفحه 22:
ايجاد شى 1116201
}Qpublic void start
sif(runner == null)
s;runner = new Thread(this)
ا لش الا( و
1
i
0 ا ل ل ا ا را
م ا ا 0 0 لل Seo Booed
به اپلت اضافه کنیم.
}Qpublic void run
What your applet actually does comes//
توتزرا
{
صفحه 23:
مثال
PET Wee Poles ets pem corer proms ee en Ken CN OLAV Inne tal
فريمهاى مختلف استفاده مى شود. بعد از نوشتن كدهاى لازم درون متد
١نا! بايد ابتدا متد 5]00() را براى متوقف كردن .1111830
6 نماییم. برای متوقف کردن ۲۱۱۲630 آن را براپر ||ل۲۱۱ قرار
می دهیم.
;import java.awt.Graphics
mport java.awt.Font
mport java.util.Date
public class DigitalClock extends
}java.applet.Applet implements Runnable
رزیل وت وزیا
‘Font("TimesRoman",Font.BOLD,24)
;Date theDate
;Thread runner
صفحه 24:
} Qpublic void start
} if (runner == null)
jrunner = new Thread(this)
;)runner.start
1
} Qpublic void stop
} if (runner != null)
Mail el-l eee
۱
{
} Qpublic void run
Thread thisThread =
;)Thread.currentThread
} while (runner == thisThread)
(2
رون
صفحه 25:
;Thread.sleep(1000)
} catch (InterruptedException e) {
1
{
} public void paint(Graphics screen)
;)theDate = new Date
‘screen.setFont(theFont)
screen.drawString("" +
;theDate.toString(), 10, 50)
{
ff
صفحه 26:
مثال
;import java.awt.Graphics
jimport java.awt.Font
jimport java.util.Calendar
public class DigitalClock12 extends
java.applet.Applet implements
Runnable }
Font theFont = new
‘Font("TimesRoman",Font.BOLD, 24)
;Calendar theDate
‘Thread runner
Qpublic void start }
صفحه 27:
} if (runner == null)
srunner = new Thread(this)
(۵ ا s
{
1
} Qpublic void stop
(اايام 2! معوضوريم) عار
الالنن ع تیاه
1
1
صفحه 28:
} Qpublic void run
Thread thisThread =
;)Thread.currentThread
} while (runner == thisThread)
:)((2 ۲
۸
;Thread.sleep(1000)
} catch (InterruptedException e) {
1
{
7
صفحه 29:
} public void paint(Graphics screen)
;)theDate = Calendar.getinstance
sscreen.setFont(theFont)
screen.drawString("" +
;theDate.getTime(), 10, 50)
i
0
صفحه 30:
نكات
ار 00
fe [1 ¢-herg ۱
Pee ORCS leah Sion te oe bem el Weenies
ا ا
Oar لالس"
9 برای جلو گیری در پرش eer oa) 20 انيميشن دو راه وجود دارد.
" 01:10 كردزمتد ©126138ا() به صورتىكه صفحه نمايش
Cenk 9 eel ل ا ا ا 0-0-1
" 01/710 كردزمتد ©00315ل1)و 031111() ولستفادداز
dubly dubl> 4255 double buffering) als sa5. 5,
mee ee be PROS ل ل PON
صفحه 31:
7 ne ee een eee reN een] 6] Le 1k Ieer dal
است:
}public void update (Graphics screen)
;screen.setColor(getBackground())
screen.fillRect(0, 0, size().width,
;size.height())
;screen.setColor(getForegrund())
;paint(screen)
1
1
صفحه 32:
مثال
import java.awt.Graphics
mport java.awt.Color
jimport java.awt.Font
public class ColorSwirl extends
۱۲ درل بای رتیت رت ابیا ات رت رت
a f = new Font("TimesRoman", Font.BOLD,
;Color colors[] = new Color[50]
:Thread runner
غ53 لزمنا ءأاطيام() (
} if (runner == null)
srunner = new Thread(this)
1a تا(
1
صفحه 33:
}Qpublic void stop
srunner = null
i
} Qpublic void run
initialize the color array //
float c= 0
} for (int i = 0; i < colors.length; i++)
colors[i] = Color. . ۱ #
ی ۱0
jc += .02
if
CaCl را ای mael (ew
sinti=0
صفحه 34:
:0۲۳۲۵۵۵ ۲۳15۲۳۲۵۵0 2<- ۵
} while (runner == thisThread)
;setForeground(colors[i])
:)((
اس
2
;Thread.sleep(200)
{} catch (InterruptedException e) {
i (late ide ا راك
i
} public void paint(Graphics screen)
;screen.setFont(f)
ALL: to the Cookie!", 15, یت ی و
350
{
{
صفحه 35:
۳۱ re re) By
0999 Sy URL oils sub laud yy ghar jl oolitw! 9 CSL 9 oly
مى باشد. را :111112011 نمائيم و سيس يك شى از آن [3-1 9
0 لا ا ات ا coheed
URL u = new
URL(‘http://www.perfect.com/java21pre/im
;age/book.gif”)
۱۱ و
Pee وا و و
سس
| ع
رد
erm epee ارات ۱0 ان رن ۱ ۱۲ و( ""
ae aed Ae 0227723-73
صفحه 36:
oS
Pod epee)! Ce SONGS OE aS) Ret IGT oad
Favre ey ee 015) ME SITS peInCO ENTS D PWV o) 0) (-| ange Caer roel
Beep] nee Pig lene He eRe PEO ل
Fee eee ares 1 emcee: (15 Telit d =f: {eee
Prone SEO ay Ck crowd irs e-TeneeeS | Wel ts pre oe CMC)
دارد.
۱ ل ل ل
محتواى آن آدرس ايلت را مى باشد.
Image img = getimage(getDocumentBase(),
;book.gif)
Image img = getimage(getDocumentBase(),
;image/book.gif)
صفحه 37:
oT abe
Aero) ا ل Bea
Bye PPM م حلي يا ا
0 ا ل hel per gee edt be
000
" شى 111306
له
يا لا
"" كلمه كليدى 161215
}public void paint (Grapics screen )
;screen.drawlmage(img, 10, 10, this)
t
صفحه 38:
* برای نمایش تصاویربا اندازه دلخواه متد 96۲1۳0506
با شش آر گومان زیر فراخوانی می شود
ادنیل
<4
لا لا
width ®
height ®
Ce Pec درن
صفحه 39:
۱۳
;import java.awt.Graphics
;import java.awt.Image
} public class Fillmore extends java.applet.Applet
;Image whig
} Qpublic void init
whig = getimage(getCodeBase(),
;"images/fillmore.jpg")
i
} public void paint(Graphics screen)
jint iWidth = whig.getWidth(this)
nt iHeight = whig.getHeight(this)
jint xPos = 10
ار مت
صفحه 40:
screen.drawlmage(whig, xPos, 10,
;iWidth / 4, iHeight / 4, this)
dOO% //
;xPos += (iWidth / 4) + 10
screen.drawlmage(whig, xPos,
310, this)
0
1
صفحه 41:
ایحاد انیمیشن با استفاده از تصاویر
00 ele aie Yipee vase) ted ا Ld
ا ل SER SSE ED cod
که وجود دارد. نیاز به استفاده از فضایی جهت نگهداری
تصاویر می باشد.
۱
انيميشنى ايجاد كنيم.
صفحه 42:
ایحاد انیمیشن ۱۱6۱۷0
"! قدم اول:
"" عكسهاى مورد نظر رااز سايت زير [©11!9236لالا010 كنيد.
١ pre 31/1 [/ للامء. أعع 1 اعج]. اناللاللا/ /ندرخخط
* قدم دوم: نمایش یکی از تصاویر
Bere) it bial رح
الل 2020 2
تا ل 0
;lmage nekoPics[] = new Image[9]
;lmage currentimg
و 0
۱
صفحه 43:
۳4
;int y = 50
PPP الف ل ا Seen
دهیم.
} Qpublic void init
String nekoSrc[] = { 1۰ يلات
"right2. ae "stop.gif", "yawn. gif",
P-acrate 1015
scratch2.gif","sleep1.gif", "sleep2.gif","
3{""awake.gif
} for (int i=0; i < nekoPics.length; i++)
nekoPics[i] = getImage(getCodeBase(),
;"images/" + nekoSrc[i])
1
صفحه 44:
۱
۱
1
Faye ne el cee Cw ee Orr ls لت
VAS eee eee] PMG] Ce gC TW Wey vad
* چهار بار عضلات خود را می کشد.
و
* از خواب بیدار شده و به سمت راست صفحه نمایش دویده و از
0
صفحه 45:
و
انجام اعمال تكرار يذير باشند. اين متدها عبارتند از:
eed eo ا 0 یش باشد. به
ere carer sya oy oie ness
start, int end) ل void }
Method Core Comes Here//
1
مى دهيم, و براى تغيير محتواى
خواهیم لل peel See
ele Da Es ۳ تا تصوير را ته
تصویر محتوای شیء 11۲۲6۲۱۷۱۲ را تغب
ترسيم م ۱0
Ld ال انجام شود. متوقف کردن حلقه
ae 4 تصویر جدید می باشد. برای انجام این عمل از متد زیر
میک
} void pause(int time)
و
;Thread.sleep(time)
} catch (InterruptedException e) {
i
۱
صفحه 46:
۱ ال للا
} void nekoRun(int start, int end)
} for (int i = start; i < end; i += 10)
x=i
swap images //
if (currentimg == nekoPics[0])
;currentimg = nekoPics[1]
;else currentimg = nekoPics[0]
:)(( ۲
jpause(150)
{
0
ا كا
} public void paint(Graphics screen)
1] (ااناه ۲ وصطااصع۲سه))
;screen.drawlmage(currentimg, x, y, this)
{
صفحه 47:
نكته
ل ا 9
ae st] hia ۱
* تغییر تصویر درون متفیر 61۲۳۵۴۲۱۲۳۵
* فراخوانی متد 0۳6۴۵۵1۳۴
|
stop and pause //
;currentimg = nekoPics[2]
;Orepaint
;pause(1000)
yawn //
;currentimg = nekoPics[3]
;Orepaint
;pause(1000)
صفحه 48:
[0 ele ee یی تا 00 el!
MO tte عضلات را يياده سازى كنيم. براى اين كار متد
ايجاد مي كنيم. این متد دارای یک آر گومان می باشد که بیانگر تعداد
دفعات كشش عضلات مى باشد.
} void nekoScratch(int numTimes)
} for (int i = numTimes; i > 0; i--)
;currentimg = nekoPics[4]
;Orepaint
;pause(150)
;currentimg = nekoPics[5]
;Orepaint
;pause(150)
صفحه 49:
0
مربوط به خواییدن استفاده می شود.
} void nekoSleep(int numTimes)
} for (int i = numTimes; i > 0; i--)
;currentimg = nekoPics[6]
;Orepaint
;pause(250)
;currentimg = nekoPics[7]
;Orepaint
;pause(250)
1
1
صفحه 50:
* حال گربه مورد نظر از خواب بلند می شود و به سمت راست
Byer cae EL Sener ero)
;currentimg = nekoPics[8]
;0repaint
;pause(500)
snekoRun(x, size().width + 10)
"" در اينجا بررسى برنامه خاتمه يافته و كل آن را يك جا ذكر مى
Pe
صفحه 51:
ادامه دارد.
1 = Java
ل ۳( اطلاع ا De