This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
тPaфичeских 06ъектoв с пoмoll{ью кнoпoк тeлeфoнa' включения в игpy Мyзьtки' звyt(oвых и видеooффeктoв. к книre flPи,oхeн кoп{пaкт.диск с 6есIиaтнoй сPедoй для РaзPa6oтки прo. гPaм,!. пакетoмJ2li[Е' a тaюке с пPимеPaMи пРolPaмм и3 книги.
@ooo (издэт€ л ьcтвo тpиyмфDl2oo7 @06л0жа ooo (издэт6лЬств0триyмфDl2oo7 @вэpcтка и oфopмлeниe ooo (издатэльствo тpиyмф'' 2oo7
Kpaткoe coдepx(aниe
Coдepжaниe '.. '.., '.,..,9
вв€дeниe Чаоть 1 гoтoвим pабoнee мeотo
} с т a п o в к a J 2 S DиI (N с t B с a n s' . . ' . . ' . . , . . . . . . . . . ' . . ' . ' ' . . ' . . ' . ' ' 1 2 . l5 l t т а н o в к a w i г е l с sTso o l k i t ' . . , . . , . . , . . ' . . ' . ' . . . ' . ' . . ' . ' ' . . ' . , .
Часть2 пepвaяпpoгpaMмa '. '.. '.. '.... ' '. ' '. '....20 с o з д i r f i ипeP o е к т a . . ...'.. '.22 нaписaниeкoдitи зilnyскпрoгPallмьt Bвeдеrrиeвo6ъеrсrro.oРиеllтиP(Л]аtilloeгIP()I.PаМMиPoвaнlie..'....2г) 3l с l . p y к ' l . y пp pz ro т P a M м ь I ' ' . ' . . ' . ' . . . ' . ' . . ' . . . . . , . ' . . ' . . ' ' . ' . . ' . . . . P a 3 6 o Pк o д aп p o г P а м м ь.I' . . ' . ' . . ' , . ' , . ' . . . . . ' . ' ' . ' . . ' . . ' . . ' . ' . . 3 2 Э к с п е p и м e в ' r . и p сy скмo д о M '. . . . . . ' . ' ' . ' . . , . . ' . ' , . ' . . ' ' . ' . . ' . . ' . 3 8 4l и e щ eя e м н o г o ' г е o P и.и' . . ' . ' . . , . . ' . . ' . . ' . ' ' . . ' . ' . . ' . . . . . , . . ' . '
Чacть 3 пpoдoлжeниe списlси ......,.
-,.
с o o 6 щ e н и я ' . . . .' . . Фopмьl '. ' '.. '. '..
к тоМт жс' xись стРoки. oтoбРа,iaющие \orrxPoцессаСo3дaпи'пРoс(rа,
Ф -l
A _ l lсPс|Iд|'1е v j"
'л*
*
sJ x9 |.;i.
;J *" '-l *'
с:\WтK22\аррs\. этo кa'raloт' ! котоРоN' хPаЛлтся всс !Poеl(. тьr, сРсдir xPoч'rх' въ' мo}кетс Brт/lеть кa1.i]Ioг i'l'oкaтU(Л.'raше' нelloworld ro IlРoскта, rta Pиqвкс сrrсвa ка]'аnог в'iд.riсIl N'llPксIn)N'' ] t P o п l с ] ' а l I l с г o ' I P o с к I| l ' 3 n с с ь пУсс1('
I'скoП)Il)с'('lичссT
B(, 'IP(,ск,|.('l. вr{сфс.
Wтк'
lt б},lу'цспt. )tl!'
](а \, вilс |к'l|]111.с, ]'ско'rоPIJп (,1''JT']аIl'tсt'''ия'lРll]l()'tс. '|!||!. зnГР)]зlrr. :r1т' l'Рoек,rьl и I t ] ] \q ! r l с п х , э r . o l l Р l i l l с с с 1 ' ] a м
A g I'
t l.
l lсPеjlдит.
ш
lJтJЛl'r
нeIIoWorId, 1] псN' вы }.B]r/'iiJтс четъIPс к1rа!оrа. сРс/(и кoтo. Pь!х 6yдeтк.i'гalol srс (oт aIrI.Jr, nNгсс истoчвпl()' D кoтoРoп1 rlсхoдньl'' и 6'vдd хPaнитьс' кo/.l в1пIс'.o пPoеltr'а,
ъ,,.po д*o,t'" paзо'pu,o. E ся нa nPимсPе'дorryстим'вьt s
Ф E {
кolrстP}'iсop и llP}!ll1t'a,!ti мo. дeль нol]oгo аl}тoмoбиля, Bы нalrDlи (oмxzlllиIol кoтopaя гo. тoъа на.'iaди]ъ вьпlyск вaшeгo aвтoмo6иля' тьneРь,'rтo6ьl вollJloтить 1цсIo в pеaJrьltoсть' вЬl дo]DlсlЬl пPс/{остaви'гь лoд. рoбtloе ollи(aнис ваIxеr.o аз,l.o. йoбrи,I, сo всoми чеP'Ie)I(aми и lloяспеtrи'ми. вoт эти чеP'Ie)lси
s :
f
п бyl,ryт кЛaссoмвatuегoавтoмо.
6иJя.
.Ib
есгь lс,всс
ol,IисьIвa€т
свoйствa, вo3мo'сroсти и дPy. гис пaPaмeгPы. Зaме'гьтe, чтo pеaльl{oro
-t
aвтоNIoбиJIя
з
s
tlol(a IIе
сF](eствyе! с}.]цсс'r'вyеlтoлькo егo o6pаз, кoгдa )rrc с кoltвeйе. pa сoйдет реа,ьньIй agтoмo6шrЬ' вы rroлrrитe oб'I'ект вa. rшeгoкJraсса.Пpичем rlислo aв.
ф т
s
Ф
тoмodtlllей неоIрarrиченпo. BьI мФ{ете сoздaвaть лю6ое (о'ци. .rес'r.вooбъeктов вarrleгo Ii'Iассa' я д}a!aю, Tепеpь PaзIrицa мсяqу клaссoм и oбъeктoм Iсltассa впол}Iе пollятЕаi !]]aсс _ ula6Jtoя, llo кoтoРoмy сoздаeтся o6ъект' oбъект - кorrxрешый лpедстaви. :еЛь I'з мrroкествa се6е пoдoбньrх. кстаTи, кoд нaпleй проlPаМifы тaк,(е является l а6Лt]пoм' пo кoтoРoмy 6удеT сoзraвaться Pеальrro pa6oтаIoщеe пPилo}кениe. Пoэтoмy в сooтветствии с тpс6oвaпIrя\1и языкa Javа весь Iloд дoJDl€Ir бьIть зaклIoчен вЕyl.plr кnaссoв.
25
б Ф
oL
E"uu.on"o..ouo.,,p,,u.-O
дем ещe oдиIr пPимеР, кoшсoвoкy!нoс IЬ Bсех сyществyloщих l(olneк,
о-
I(oшкаMypкa' )кивyщаяy вaс в квaPтиPe'- этo кoтri{pетrrьIЙ
(в Ф
oбъeкт'
tr
o-
Ф Е
х
@';6.ъ^щт K1л0@e@@ Кoщшo
ni t(-) б J
приlrадлeжaщий
Клaссьl o6ьI.rнo сoдеp]кaT ЕекoтoPoe кoличeствo гIePeменньIх' пеpемeннъIе _ этo пaPаlt(eтpьI кЛaсса' B кaЧествe пepeмeнiJьIx IrЛaссa кoIIIrи мoryт вьIступaть имяt рoст' вeс. oxPaскa' вoзPaст и т, д, имeнтro пo этим uaPaме'гPaм свolo кolllку oт oст:UIьI{ых. п€Peд тeм кaк 06ъявить llеPемeнI{yro' вьl дoл)кнь1 }кaзaть' к кaкoмy тиlry oнa o,гнo. сится, чт06ьI кoмпьIoleР мoг IIPaвиJIЬI{ос нrй pa6oтaть. нaгIРIrп{eP, сyщeствyет тип цeлых чисеЛ' тиII !tисеЛ с rIЛавающей заrтятoй, симвoльньrй тиII дaнныx. Если вьI пoпьIтaетeсЬ ePeмeннoй, имсющей тип цeлoro qисJrai гIPисвoItть стPoкy тскс" тat тo вo вpeмя кoмIrиJIяции пPoгPaммьI пo"тyчитe oши6lry тb eстЬтиlI данных' кo' тopьtй вьт сodиpaетeсr trPиcвoить пePемеl'яoй, дoл)кеIi сooтвeтс'r'вoвaТь т4пу пе. ремeннoll' нaпPимеP, Poст' Dес и вoзPасткoIпки мo)кнo olтpедellитЬ цeЛым или дPo6ньIм чис. лo!'{ (40 см, 6'25 кг, 2,5 гoдa)' имя кoпlки,,тyvше xPaнить в стPокoвoй пеPеменнoй, a вoт дЛ,I otlPeдeЛeния oкpaсa xoшrки пoпaдo6ится пrР€ п {eн!'aя типa цвет. в язык€ Javg с),Iцествyeт 6oльrrroe кo'дичeствo IrPoстьIх тиlloB дaнвьIх (цeЛые и дPoбные чисдa, симвoЛьt и стРoки '.' ), нo, eсли стaндapтныe типьI Irе пoдхoдя\ у прolpaммистa eсть вoзмo)rGoсть сoздaть сo6ствеr{ный тигr дalrriых' кPoп(е пеpемецIIых, r.ilaссьI сoдeP)*aт метoды. МетoдьI _ эr.o тo. чтo мoryт делaть oбъектьr к-]rассa' кoшки }'l"'еIoт 6егaть' пpьIгaтЬ, oхoтиться нa мыrIIей - этo и eсть их МетoдьI. к"]aссы мoryт 6ыть кaIспPoсTьlми. тaк и слoxlrьIми. пpoстoй lolaсс мo' 1(ет состoятЬ из пеPемеIilIьlx и ме1'oдов' яo tie сoдеРкит юlaссoв Bн}тpи себя' ()Ioхный K'Iaсс в дoпoлпение кo всему сoдeР ыj кoтopыe olr испoльзyет в сuoей pа6оTс. нaпPипfеp' Iсllaсс aв1oмо6t,1пя испoльзyет в paбoте 6oлее пpостьIe к,Ia лесa' класс двигaтeЛя' I(лaсс кoPoбки пеPедач и т. д'
26
O Грuфu"".*"* сr'Iо)ltнolo
кЛaссa
изo6pФкеIr
tr
Ф
s
Ф Ф
o\ Ф -t т
s
j,11lетьтe! 1lтo клaссьl]
Ф E -l вхoдящи€
в сoстaB
сJloя<нoгo кЛaссa, тaюl(e моlyг
6ьlть слФк-
:ыtlи' нaлРимeP, двигaтeJrь,вхoдящий B клaсс aвтo[,to6иля,сaп{no се6e явrrяeтся : a^татoчtto
сЛo)I(llъIм кrlaссoм.
E
'6Pa1.имс' к сиятaксисy языкa' cr'нта(сис - этo те сJIoвa и вырiDt(еI{ия'кoтoPЬte j:пoлъз''ются в я3ыI(е пpoгpaммиpoвalrия' a тaкя(е пPaвилa исlloxЬзoвaния 9тих : :ов и вьIpФl€ t rий.
o
. языке Javа для oбъявлeния кJIaссa с.тРкит ключевoе сЛoвo сLаsЕ' пoсЛе I,Iе!o ' :едyет имя lolaссa' a в фиг}PньIх ск06ка.х зaключaется rlPoгpann!fljъIйI{oд кЛaссa' iапPимeP, чтo6ьI 06ъяви1ъ кЛaсс кoшек, мo'.t{o исlloJiъзoвaтЬ сЛeд}rcщий кoдl : аss саE
s
"T
s
( ),
з клaссе мolyт 6ытЬ o6ъявлены РirзЛичl{ые переме[Iньrеl otII'сьIвaющие свойствa !]1ассa'нaгIPимeP, мo,rr€ т 6ъIть тieРeмeннaя l{ame' oгIpедеJlяIoщaяцмя' и ПeРeме}г :jзя Ag€ ' кoтopaя 6yдеT xpанить вoзPaст вaшей кornки.
Hи.lеro слoжпoгo' сшaчa'1а 061'явлЛется rraзвiLнис рIaссaj x зaтсп' l]а.rвa]Ildе 06ьск. .гa, O6r'яэлеIrие o6ъсктit liпассa м:r,1о qс! ol,ичaется oт 061'явлсIrия Ilеpемсявоii' lPoстo э Poли 'ги!а дaнвьlx вЬlс1y'laс'г llnзв.tlrпe кrlассa. OGPltтиTе в rюсле нaзвaIIия объс(тa сTa!яTся ск06кп' некoтoРьlс Iспaссь] lIPи сoзд:rниIl o6ъек. тa дoлкl]ьl loJryчaть паPаliсl'pьI] в этol{ с]lytl:tс (jкoбктr слyжат дJЯ гtФедачLI aPа меrPoв. Если rке iеPeдачa пaPaметPol] яе 1'Pс6yстс,I' сltо6ки oстaютс' пyсrыtr!и. итак' yвaс есть o6Ъсктl4urka' пPинаJvlФialцпli к кJllссy саt л имеloЦиii llсРсмсв. яylo Name с иI!снсм кoIlIки и llepсУ.EвIю Age' D (o1'oрoй xраIIи]ся BoзРnст. .цaвaй. те пoлPo6уем считaть вoзpaсt'кoшк!т в ЛPy]lo lleРсl!сннyю. IIа1lРипlсР в сatAge:
2A
]:--=.
Ф
. ]{!rka. Agе '
':-
il oбРaEться I{значеIrикr пеPемеппой, вьI дoл)itflьI )кaэaTъ назвaяиe oбъeктa, r ']::У. чеPез тoчкy' IrазваIiие llеpеMеннoй, кaк бьIлo }тIoмя}ryтo вьIrпe] вьI дoлrl!. имoстьIо 1.игroвдaЕiiьrх, B дaннoм слyчaеAge и сatAge иl!le. l :rЦ тIrп даrilrьrх Inl-' тaк чтo прoбЛем яе вo3ниl{нет .4,iя вЬ1зoваметoда ис. 1 .:,r Фся сJlедyloщиЙ сиl{таltсис:
_ r..аrцения к nepеп,tепIroйolr oтличaется тoлькo яzLEичиеI{скoбoк,
*'.on .p.o.'u"o,.,
s
Ф @
ol d Ф -t т
..::.i:эоut'()'
(O
Ф I
u
s
"n скo6кaх 'raM Ey)laro yкaзl],ь' т скoлькo рaiJ дo,ж!ra мяукнy'r.Ь -t вaптaМyркa' ЕФи noпpoсиl.Ь s Мyркy мяyкE/ri' двa paзаt то кoд пpип{eтслeдyюlllиивид: E
l"]urkа.lv]еou!,J {2 ) ;
o l
Mя-a-ay
't
з
s I
s .:lерЬ пРиведем кoд o6ъявJlсния ]эемеIIIIыX и метoдoв. :cq
..]Е
/crr]nб
nаmФ
].Е
кJIaсса, сoздnяи'
iпa1
oбЪек,га и испoльзoвaния
егo
I
l:rDW O { };
29
б
r4:Lr.)r;
б
oo(d с0 Ф t(\ -0 F.. б
сэt
]vJ.}d.<}4urka}' 2) ;
тr L
сdL A9е l
саLAgе = Yurkё.A9е' l4urka.Meouir(2); сейчaс PaссмoтPим этoт rrебoльEoй фРаIмеЕт пpoгPаммьL кaк видитe' пpи сoздa. вии кпaссa мы испoЛьзoвlulи двa пaPaмeтPai nаmэ и аge. с ш. пoмoщьio }эке IlРи сoэдaнии oбъектa кJIaссЪМorФo зaдaть имя и вoзPaст виPт'?льIioй кorдки. 3aтем п,{ьI пPисвaивaeм пePемеl{I{oй cаi^go зtraчениe вoзPaстa кoцIки' fleРeмeннa.я 6yдет им€ть звaчetrиe 2. A в кollце' oпять 't(e с IIoмoщью пapaметPа' IrPoсим кoшкy МyP. кy мя}тн}тЬ двa Paзa' тeпeрЬ вьI имeeтe 06щее пPедстaвлeяие 06 odъeкпIФoPиеIiтиPoвat{яoм пPoгPaм. миPoвa1Iии и сиllтaксисe языка llPoгPaммиPoвaния Jаva' Mo}кllo двигaться дaль. щe' B следyloщeм paзд€ле мы Paэ6eрем o6lцyю стPrс)тy пPoгPаn'мЬ\ I$Я' Мo614лЬ. нoгo телефol{a.
зo
Cгpyкгypa пpoгpaммЬl
-l
':.::ь
lloxitio paссмоlpеть o6щий пpинцип пoстPoeния пPиJloяtеl{ий в Jаva2МЕ' ]=::\l с lIPимерa из хиз!tи. дoпyстим' вы Решили пoстPоитъ сe6е дoi1и oбрати: ; з стpoитель}l)'io opтанизацIrlr. стPoите'llЬ}rая oPlaнизaция 6yдет лBляться ]:. :эe}{}'oй, выxолrrяIoщeй пoстPoйку дoмa' Bъl, естествei*ro' o6pащaетесь к , , н а ч a п ь с , ] в i l х. o т o p Ь I й я в , l я е | . я | Л a в I | Ь l м. g п а ( L o чo P | а , r и J а ц и и ' С н а ч а " l Ь . - :!l вьI oгoвaPиваете сPoки и стoi'Iloсть вьIlloлнеяия Рaбoт' B сoстав кЛaссa Еa:'- :..зa вхoдяT r,{етoдьioтдачи IIPикaзoв Ir тРебoвaпия их вьlпoЛнения сPoить нa. .]--.:lo нe умсет' .цa этo и Irс нyхolo' ведь в пoдqиIrепии I,Iа.чoдитсякJIaсс Paбo.: :, oн'l'тo уMсIoт и кoпaть. }r клaсть киpпl{ч, и въlпoлнять oТделoчIrьlе pa6отьI' B : : ::pя]lrении pa6ouих ЕахoдЯтся к,aссьI тeхtrики ,r pa6oчиx ипстPyмeliтoв! ttoтo. : -: ]нll }tol}т исIloлЬзoвaть' пoсле oкoнчalrия стрoитeлъствa кJlaсс Pa6o.rйx сooб. ::']:. i.]aссy нaчальствa, чтo pa6oтa вьIпoлнeнa' нaчaпьствo в свo1o oчеPeдь связьI. и с o o 6 ш J е , l ' ч г o в Ь I ) ж е ч o ж ( т е J а с е I я l Ь ( я ' в Ь ' p а ( . ч и , г ь l в a е т e ( Ьс o -:;iтеЛЬдoй oPгalrизaцией, и Pa6oта пPoгPaммьI зaканчивaется' lla oтoпl flРoс. -: : ]PимePе мo)r(нo )ъидеть' кaк Рaбoтают rlpиЛo)кения' зaкaзчикoм явЛяeтся :.зoватель, кoтoPьIй загryскaет pа6oту пpилoяtения' пpиЛo'(ertие мo)I€ ' г сoстol-. ;:з;rю6oгo кoличeс],вa к,aссoвi нo всeгдa дoJlжсrr бьrть oдиЕI глaвньlй кЛaсс' ру::.rяulий лействиями oстa"!ь!IЬIx.имеIrнo с гЛaвIroгo кJIaссa и нaчиEa€ T ся вы. :j:ениe rlpилo'tеI'Iия'
j:.зi]ицa между oткPьIтьIми Ir зaкPъlтьIми i.qaссaми бyдет oбъясrrяться в следyю. =.\l Paздeлe. a пoкa лиIIrь скa]кy. Чтo к зaкPь!томy (пaссv I{еJIьзяпoJry_читьдoстyгI ::]Pяпlyк]] a тoлькo пoсPедствoм мeтoдoв oткpьIтoro кЛaссa' : -r\цaю, с клaссами, o6ъекTaми Е ь!етодaми вьI успешнo рaзо6Pа-цIrсъ' нy' a те. -.Dь дaвaйTе Paз6иPaться с темl чТo мы тan' нaписaли. пPoIPаммa сoсTolrт вссIo i] несI(oJlьки]. стpок. и paзo6paтъся с кoдoм' я дyмaltr' яе сoстaвит тP)дa'
31
б
Paзбop кoдa пpoгpaMМьl
б о.
итаj<, PaссмотPим пepBъrе две стРoки flaшeй тIрorPaммьl:
o o.
lmрort
j avaх.miстoеdiEion.
tr
:nоo-l
J".х.l
сa o-
Эти стpoxи yкaзьtвaroт lroмпилятoрy' I{акие клaссьl мI'I 6yдеM испoЛшoвaть в ЛPoР Paмме. как вьI пoмIrитеj для сoздания oбъектa xРoгpaмме нy'rво егo ollисaниe. эти стPoки кaк Рaз и yкaзьlваIoт, rдс 6paть oписаяил ЕIy'rньIx rqлaссoв'
с|ass1 с|аss11 сlаss111 Г L с|ass112 l classl2 сlаss13
t
с|ass2
t
с|ass2.1 class22
сlass3 L с|ass31
rroскoлькy мЬr 'rсгIoJlьsycм Prtе Iо'гoвЬIe lс]iaссы]мьl дo]I'(IlьI встави,i,ь (иЛи IaмпoDГ и P o в a Г ь ) в п P o г P а V м y o п и с а | t и я J I и х к . | : r n 1 ' вд' , l я , м ' l . ' P т и г o u ' r " , я к л " . . . , ; . пoльзyется клioчевoс слoвo import. пoсле кoтopoгo сЛс.дyетпy.гь к кла(сy B иерар. ).ии к.Дaссoв.в кoнцe пlти доЛxlro rl&!oдиться иЛи ЕазвalII'IекJrас(al ил Симвoл + зlrauит, нтo мы 6yдeм I'сlloЛшoвarь шисс! Irахoдяциi{ся в уl{а]aнrioм IIa' tте к,асtoU. TраIl.J|яloР ^oл).eн .oJ('Pжимое ''u. .n '' n,;.' нyl{tliьIй Iсtlaсс. этo, llрaвдa' мo)l(еa yвеличIrTь вPеi(я тpаясляциI'I ltРorрaммъI' Ito, ссли BЬl испoльзyетс мrroгo кJraссoв из oднor'o пaкетaj тo легче yкaзaть то,lьI{o !a. кет юIaссoв' Чем импoPтlrРoвaть каl{(ц!Iй класс o1дcльнo, на!римеD' eс!и мьI сo. 6иplevсл иrrr,'лr;oвaтьп |Jсс с|аss111' изo6paж.нньIй 'а p'iрке в'.с' o л-пя импopтиpoвaIrия в l1pоfРaммy ollPеделе}Iия эToгo l.naссa мьl мoт(ем
з2
!) Ф : : a s s . с l a s s 1 . с 1 a s s1 1 . * ; -]:]:i оеРвая
с.Poкa
наIlIей
пРorРaммы
E )д€зьlвael.'
чтo IrPкIrыи
o
IоIaсс пaхoдится
.Ё flidlet, кoтoPый Bхoдит в клaсс mlсroedition. a Irпасс miсroeditioп, в свolo
кпaсс TexЕвoх oпPeделяIoIiщй текстoвoе пo. лet в lсoтoPoм вы мФl(eте вывoтeксT. дить и peдaктиPoвaть l{o TeхtBoх- этo кJIaсс,a riaм IIyжвo вIIoЛвe кoнкPeтI{or текстoвoe пoЛе' пoэтoмy мьt и oпРeдeЛя€ м o6ъ€ r rT lqaссa тeхЕвoх пoд rraзваниeм lextbox, Iсoтopьlй пoOIe испoЛьзyем в свoeq пpoгрaммe.
O6ъяL'reниепеPе\{eнвьIхв o6цeм с,'Iучae6)вет выгJIядетътакi Protеc! ionTYрe c1assName vаrNamе гдe РroteсЕionтyре - ключeвoеслoвo' oпPeдenяIoщиеyPoвeвь3aщитьIпePемeн. чoitr,с1agвNaпre - кЛaсс' к кoтopoмy 6yдeтпPиrrад,Фкaтьпеpeмевн!ЦtVarName имя пеpе!rе}IноЙ' B с.'ryqaеeсли гIеPeменнaя 6yдeт испoлЬзoванa тo,lькo в гIPедел?rxoдtloгo к.дaссa'eй пPиllятo llРисвaивaтьypoвеrrьдoсryпa privаte' этo считaется xopoцlим стилeм пРoгPaIlIмиPoвaнияи пot'loгаeтиз6eжaть мяoгих orrrи6oк. иraк' мы oпPeДeЛилиo6ъект кJIaссaтeхtBox' пoд ип{е1lем!x!xbх и дoстyпный тo,rЬкoв flPeделaхкЛaссaнe1Lowor1dMidLet' вьt мoжeтe oпyстить o6ъявЛевиeyрoвIrядoстIпat в этoм с.!yчaeпeрeмeннaя aвтo. п{a'гичeски стalrет зaкpьIтoЙ,тo eсть рrivate' o6рaтите внимaIrиe,чтo lloкa мьI тoлькo зaPфеPвиpoваJ,]-r мeстo для o6ъекta, тo eсть )q{aзa.'Iи !рoгpaммe' чтo сoбиpаeмся ltсtloJlЬзовaтьoбъeкт oпPеде/rенIroгo ioiaссa.сaп' 06ъект и elo свoйствa еще не orrpeдeЛelrьl.идем да,rьlrеi publ1с ]le11owоr1d!,lid]еЕ( ) t oпять l'е1]owor1dl'{idlec, B дaнtioм сrтylaенe11owor1dMid1eE _ этo кoнстР}'l.. тoр' этонoвoe пoняTие' нo в Iiем нет aбсoлIoтнo}rичегoслoжнoгo. кoнстРyflop этo кoд, кoтoрый вызьIвaeтся пpи сoздaнии &!aсса' To есть' кaк тoлькo вьl llФкarllи кнoпкy Lаunсh (зaпyстить) нa м06l'1ьнoм Tелeфoнe. чт06ьI зaпyстить llриЛo)кe. i{иеl пеpвым дeЛoм IraчiUIвыпoлняться кoнстр}1(тoP клaссa нe11owor1dМid]еЕ, как вЬI yхе зaмeтили, i.oнстpyктop имeет тo хe имя' чтo и к.'Iaсс.
з4
я) Ф о\
I
o .p"q""""*"" ,,oр,o.я) """*"IIРиЛo. э кa выIIoлнения fralrleгo
a
x€rrия пI}иведеl{асЛевa'
-1
Ф з
:"*t*ol"-**
.i)бки пoсле имrни пrетoдa(a кoнстP'1(1oPявляeтся oдвим и3 мeтoдoв класса) ::.;ат для пePедачи пapaмeтPoв' в дaннol,t с"ltyчa€ никaких пaPaмeтPoв мы ые пe. :.:аем' пo9тol,'yск06'(и пyстыe.телo кoнстP}ттoРa зaключeнoмe)кдyфиryРньIми .i эбкa!м, ] i:сtloтpиI',t следуюДI)4oстРoкyl : : ] { : b о x = n е W т е x t в o x ( < н e l 1 o } , I I D l e t > ,< н e 1 1 o , W o r ] d ! > , 2 0 , 0 ) i -. зoт этo Рrсе кoд' кoтoPый 6yдeт выпoЛl'яться.кaк вьI гtoмвите' Еeхtbox - 9тo i ]irкРeтtrыйэr(вемпляPкnaссa тeхEвoх' пoйIiитe, чтo дo 9тoгo lt,toМентa мы ве : : з.1авали06ъект, a тoлькo yr@зaлипPoгPаммe, чтo сoздадим егo в 6yФ,rцeN{. B этoй ::эoкe кoдa мы к,?lкpaз и сoздaем нoвый o6ъект и oпP€де,'IяеM еIo свoйствa' клю. -:-.зоeслoвo new сJry'йт д)lя сoздaния tloвoгo o6ъектa. как вы мo)ttете вrцеть' irьI ::з.IaемнoвЬIйэкзeмпЛяркnaссaтexlвox, oпределяемelo свoйствa и lrpисвaивa:tl этoмyо6ъекry имя tехtboх. свoйсrъа o6ъектaмы пеPедaeIlI в кaчeствeпaрaмет" :.]в, зax.]IючaемьIхв с!io6хц. пaPaМетPьI oтдeляются дP)т oт др)тa зaпятыми' To :'rь мьt пеpeдaеМ четЬrpе пapа.меTpa'B I(aчествепapaметPoв мьI пePедa€м двe текс-'вьlесrPorrиидвaчиспa,ТeксгoвыестpoкизaIспloчaloтсявдвoйяыекaвьIчки' .епеpь PaссмoтРим' какие пaPамeтРьi тpе6уo.rcя *lя сoздalrЙя o6ъектa клaссa
lil rjBor(, (] ll()lr()oц'o давн()г() t /rlll.ь llскоr()PЬlс сиIlBo]tьl, l,Ijlи )кс вЬl м()t(сr.e ввoдпlJ' ф ( , P п 1 1l сl ,
симвonьl
nпРетlIть ввo R oIlPе,l(еnеп!oм
lt Рсrуn!n'ате ,v lll!( доJI)к'к, 'Ionyчи1.Ьс1l 1'скс, oм нel|o м|DIet' l й | с к ( 1 н r | | o ' W o г | d ! l i l ( к ' 1 l , B , п , | . , ' . | 6( r l r r м . ' r l I r ' ' r ' r l ' , r r l r l , Лl()бьtс сl.lNltt('Il', l() {)бlцсс rtх ЧLl()I() lIсllox)!{lo llPсвьIrпill'ь /]rвry0(!u,!!' А 1.сltсpь дав.tiir.с ll'llх)бусм ]]aмсви гь с1.P('кtll lt(jРсllаваеNlьIс l} к^че(ll''}е IlaРaме].. r' 'юсмl'тиIl] Ч,'!) 'к)-!yqПт(я' l} качс(1.|rс з?rгorloвкn.()o6lцсlIия tlеPсдa]ц.lil Рo3j - стРoку ()06п!еIlи' liaчествс'гсЛ.l a D Benиltnй lPorрамN!ис]-, ]b "(i!)6Iцс!Utс,. ",l (l)3/(аниe зa тскс1)вoгo пo]l,i' ''PlJмеl. сjlеlryloщии вид: lая toхtboх
= nel'
тех t вoх (<с ooбщен'I'.' , <Я !епикиЙ
п p o г р a М M и с т > ', 2 a ' 0 \ ;
кoшлlrиPvсм lPогI]As!мilt 3aII}тк^сl'! и,'' в]!'естo oя{идaсмolo сoо6щеllиn tli]Iyчасll . ' I U I t l i r \R, ' | , \ t . , , t t 'R, i. ' ' ' ' t . н I ' l t n n г I o , o с ' Р ' | | | | , B | | |! ' ' | | l l . | . J г Р l | | | i i| | : ' l ! : ' ! ',l ' , l , г дal('цI'iir ifaliсиlla"IыIoе чllс]lo сi,!Увo!ов- ДJиll,1 .оo6пtсния вс /Iол,tнa llPевьпIlать двaдцaтI] сI{vBo'lloIl. a r} !ашсй с]'Po(с ихдвirдl1aть oдин' Этaпрo6лемa Pепlaется пy. тспt yвex чеllия мaксимlтlънoй дЛшяы (х)6щсвllя' нaгrymlеp лo i00 сиlrвoлов, l,lзIiсlttlе
з6
rp.тп]i
!aР,l\!с'rР
и пl'втoРt]те
кoмпиляцlllо
и зап1тl{ пpи,noжеIlI'Iя,
-o @ г*y,*^' IiеInroй
Pa6oaы изме.
пPoгРаffмы
0)
llРедстaв.
"1
!)
: , : . l У . g e тD i s p - d y (L h i s l . s 6 г . U r r . n - l с . х t b o х ) ; !'gi оfia с'гpoкa lсoдa' PaссlfoтPим еe пo чaс,rям' : :.:аy - oтo к"Iaсс,oтвe.laющийэa дlrсrfleй тeЛeфoнa.getDi sр1ay ( ) - мeтoд L-jiса Display' кoтopьй пo.тyчaст эI(3eмпл,lPдисплe' для кoнкPe1.Iroгo rrРr-rлФке. Чтo имeeтсяв видyпpилo){ение'из l.oтoРo. J..r' ключeвoe слoвo lhis )тtа3ьIвaeт' . !етoд и вы3ывaeтс'' C пoмoшIьroмстoда seЕсurrent () вьl yФ3ЬIвaстс,t(aкoй ..:..'еr.т следyeт oтo6paзить Iia экpaнс' ;::..r- теrrePьсo6еPeм вoедиtloi данная стPoка oбpaщaeтся к нalu€ l {y дисllЛеlo и .:.:6Pa]кaе,г}rafieгo o6ъeкт teхt]эoх' 1.oес'гьIrarдeтекстoвoе пoле' ijr вtцнo из этoй стPoки кoдa' в oднoй стрoке мo'(ет вьIзьIвaтьсясPaзy ЕlесI(oль. { четoдoв' каяqьIй Шoслeд',roщийметoд пPименяется к pезyльтaтy вьпIоЛI,reпи,l t 4:?.вIIIиeся,r.Pистpoки кoдa мьi Рaз6иPaтЬ пoкa пе 6yдем' не вoлнyйтeсь, сt(oPo rjj ]o6еPeмся и дo tlиx' A пoкa pаэ6op исхoл}toгo кoдa нaIпей пеPвoй пPoгРамМьt {.: {нo
считilrь
завеPIIIев}IьIм.
з7
Ф
Экcпepимeнтиpyeм с кoдoм
б о.
rепеpЬ }Iaстaлo вPeмя дЛя сaп{oгo иtlтеPесIroгo . экстIeРимеIiтoв с гIРoгpaммoЙ. иМеlrнo эItспеPиMeвтиpoвaIJI,lепpиносиT нaи6oльший oпьIт' тaк чтo иe 6oйтесь. для пaчаJla пoпPo6yйтe ввести дpyгие зaгoлoвoк и ЕaчaпьIrьIй Tекст. ТbjlЬкo пPoсxедите за теNt! чт116ьIдЛиЕa теI{стa 11спревьIпIarla yкaзalIнyю ! tlаpaметpа.xl иEaче вьl пoД"чите oшибкy.
L
otr б гс{ tсd
Дaвайте пoэкспepиментиPyем с фoPмaтиРoвalrньIм ввoдoм текста, To ссть сoздaд!rм oтPaIrичеIrI{янa ввoд иxи задeйствyем специaЦьнъlе фyнкции теЛефoнaдля Pa. 6oть] с вloдимьIм текстoм. зa это оТвeчaeт пoследliий пaPaметр к"Iaссaтeхtвoх' B Та6л, 2.t пеPечислеIrьI зIlаЧеIrия' кoтoРые мoжет пpинимaть этoт пaрaп(етPl и дa}io их oгIисaние. mбл. 2. ]. Baзl\.aж'н1'lе' 311аце1111,я па?алефа
:..:.r в тoм' чтo гIpиJto)кеrIиеДпя r"roбильноro теЛефorraмoхeт наxoдиться в oднoм Е: :p€х сoстoяIrий:
s
i
. Arтивrro. эTo сoстoяяие, кorдa вы испoльзуeтe гrPилФкеllиe. нaпpим€ P ' игPаet.eB игрy. .
пpиocтанo6л6нo' пPиЛoхeяиe вPeмeвнo пPиoстaнaBЛйвaeтсвo1oдеятсЛь. !roсть' tlo не рa3PyпIaстся.нaпPиМeP' вьтвФкаJIиrra пayзyвo вpeмя игPЬI и PeшrиЛЙlloзвolrить дPyry
.
РазpyrДoнo. пPи.jloхсlrиe рaзp)шaeтсл' тo € с 'гь вьrfpy'кaeтся из naмяти. нaflpимеP' вьI выrдJrииз ЙrPьl.
.lli вo,г'lIРи пеpехoлс lIPилoжеIIияиз oдI{oгoсol],o,rнияв дрvгoе лoлжсн выuoлj -]iгьсяoпPсдеxeняый кoд. }laпРимеP, кorдa вы пPиoс,lalroвиЛиllpиl(oжеяис' oнo :1:rжнo()св06oдитЬмаксип{умзaнимaeMoйпaмяти и пePeйти в lIPиoстaпoвJIсl{}Ioe :a.тoяниc. в дarllloм c'ryчaе6yдeтвыIroлнятьсЯкoд метoдaрauseApр (),
o 'рo6""*** сxcпlaпеPс.
xoдoв trрoIPaммьI и3 oдItoгo сoстoяние в дp)тoе' гIoка3анa r,IaPис},нкс с,Iевa'
41
б б
otr б iE с) Е
пi f..
Q
Ф т
rrpи зaпyске пpoгрaммьI olra свaчana пеPехoдит в пpиoстa}IoвлевEoe JaTем выпoлllяется кoд мeToдa startAрр ( ) . и пpoгрaммa стaнoвится aкTи и з а я 1 и в н o г о . o с г o я н и я п Р o | Р a м M а м o ж е т 6 ь l l Ь ; и 6 Ь п p и o с т а я o в . 0 e н aп ' ри въlпoлI{яется пleтoд рarrsеApp ( ) ' Ли60 Разp}тeнa' тolдa вьIпoЛrrяется кoд dеsЕroyAрp ( ) ' кaк виднo и3 pисРrка' прolpaммa тaк]ке мoя(eт 6ьlтЬ из IIPиoстaIroвлеrrFIoIo сoстoя}Iия. нaпРимеP' пpи 3alryскe тIpoгpaммъI мo)l(ет гIoлняTьсЯ кaкaя.либo пpoвеpкa o6oPyдoвaния. И' если еe pезyльтaтьI 61'лд llеy'
Irsr-. apрend (, nu11) ; 1 i s t ' a р р e n d ( < < sеi п e n s > , n u ] ] , ) ; List. аppеnd (<samsung>, nu1t ) ; 1 r s t . а p р e n d ( < < s o n y > ,n u 1 1 ] ; list.
сoздаriДе сrп{скa завсрI]Iенo. с)сталoсь oтo6paзить еIo нa экPaн мo6илъпoгo те. лефoнa' мы пoсrynи' тaк жсl кaк и в сЛyчaе с стве o6ъектa пеPедaдим нall списoк:
DlsрLаy ' getDisрLay (this) .sеtсurrеnt
46
(1ist);
O .o' пPolрапrмa loтo"y вa. TeпepЬ oткoмпидиpyйте еe с пoмoщьlo Kнoпки вUild (сoб. PaTъ)' a зaтeм зaтIyстите' щеЛкIryв мьllпьio lra (нoпкe Run (Bьшoлнить)'
s s
B Peзyльтaте вьI дoл,сrьI }ъи" дeть экpaн мoбильr{oгo теЛе. фoяа с нaзвaвЙeпf rrarrrelo
пРoизвoдитеЛей мoбильIrыx тeлeфoнoв. гlPичем 9лементЬr яaхoдятся в тoм пoPядкеl '] кa. I(oм otlи дo6aвЛяJIисьв списoк. !;rи вalдa flPorPaммa не загIyс(aeтся, пPoв€Рьтe кoд eщe Paa' BoзмФкнo' вы гдеJтo ::a-,стили oши6кy'Если ясeвы Ilс мoжете oбнaPyхЙть' в чем делo' llих(e пPивeдeн : :LIвьIЙкoд пPoгPаммы. -:iort
jаvax.miсroedition.midlеl.*i
]-.oтЕ
j avaх. miстoеdit ion. 1сdui . *;
--з1iс
c1asв LislAppliсation private рubliс 1ist
Lis!
eхtends M]DLеЕ {
1iЕЕ;
ListAppliсation
() {
= new List (<Mo6иrтьн!,!e тeлeФoны>. сhoiсe ' тмPL]сIт ) i
list. app€nd (<Мotorola>,nul1); 1 i s t . a p р e n d ( < N o k i a > ,n u 1 1 ); 1ist. append (<sienens>, пr11); 1 i s E . a р p e n d( < s a m s u n g > n, u 1 1 ) ; list.
apрend (<<sony>,nu]1);
1 i s t . a p p e n d(< A ] с a tё 1 > , n u ] l ) ; DispLay. getDisр1ay (this ) . sеtсurrent (tisЕ ) ;
47
q)
]
т Ф
o'otе
s
,.d
o d
,(q1-qрр
(
q
o"
ploteсLеd
vold
pauseAрр ()
рro|есted
void
destroyApр
{} 1boo]еan
forсe)
{}
Е
F (J f-
AтепеPь' I(aк и oбещalloсЬ| Рaссп(oтpим rипьI спискoв, oтrи пePечисЛеньт в тaбли.
знaчeниe названиe oписaниe I ЕxcLUslvЕ Пoзвoляет l}ы6paть
L'.тy]кит д]'iя пРедyllPс'tдения пoJlы]oватеJIя o lIоте}тци;UIьIloй oпaсвoсти. нaпРимeP, вниманиel даннs' oпepация yдалит вce нoмeра из тeлeфoнвoй кни.и!
ЕRRoR
сoo6цaет o вoзникtrтей o-ибке' нaпpи'еР, Ей;;тo;й Мeста Jlля yс'аl{oвки npиЛox6|iия' yдал'тe чаcть данньlx и rroaтoритe ycтанoвкуl
ALAR}I
ИсIloльэуeтcя tIЯ вьlведeпия сoo6ще-rид paнее lraстроеIrЛoгo гlo, Ь'ti'ва ге,см, Hаl l Pи vеp, Aвтoбyc пpиeдei vepeз пять минyrl
сoNFlямAт|oN
r'Iraчсния' кoтopьIе !'oжeтnринимaтЬ денъl в TaбJrипе I,Iия(e:
пoОlсдEий Пapаме]P, и их oписа}Iия nриl]е.
ПoскoлЬкy э'l.и пoс,l.oянньIeoтнoсятся к кJIaссуA1eItTypе. вЬl ДoЛ)кtlьIllllсaтЬ сIи. чaЛa Ilазвaние lоIaссal a зa'r.см кollстантy' o6o31iaч1ющуro тI,rп сoo6щeltия. нarlDи. чeP, A1eItт/рe'!'AR\lNG, o6pаrитeвrпrмаlпrс.lтo(ooбщениelIояв,яcт(яI,Iаt{скoIoPосвPcмя.aзaтc;сavo исчcзaет. ЕсЛи 'rаo не устPaиваeт время задep)кI(и' вьт п'tФl{eтeeгo измeни.|ь. ДJ|я этoгo слy'йт мe,roд seEтimеouЕ(), кoтoрьlй в кaqсстве llapaNle'r'Pаlrpиниi{aет nPе. мя з?lдеp)кки в мl,IЛJlисeкyндax.llaпPиМеP, ес,ltl вьI хoтитсt чтo6ьI ваrrleсоo6rцcйе IIахoдиJloсь I{a экрa!{e тPи секyrrдьIt.,to6iтв}летaкЦо стрoкvi a l e r t . s e t т i m e o u t ( з 0 O 0) ' Этa стрoкaдoлlкнa 6ьlтьдoбaвлецa гIoсле сoздalrия o6ъeктa, нo дo € г o uoмещеtrпя пa экPaц, Если '(e вьI xo1,итеt ч1'oбьIсoo6цеi.Irrе нaхoдt.lлoсъ I{a экpaнс' пoкa !oЛь. A]ert.ЕORЕVЕR. loRЕvЕR - кoнстaнтa, lPиrrадr'Iежащa' IсrтaссyA1еrt юur.]я Jа у. гlitsoвкv6.(кoltечной задсржк|'
oткoYпилиPyй гс lIPorPаvW и заIlvсlи,i,с' нa экpalle lloявится фoPма. сo;еp*(a. tцaя текстoвoс II('Ic с ]lal.oЛoBкoм вв€ д итg вaшe имя'
C).."y,,,.o'.
Pa6o1'ьl IIpивe-
BьI мoxсТc Dвoди't'ь и Pедaкти. Poвaть любьte сfiмвoЛЬIt пoзвoлепньIе мaсltоЙ ввоДа (чет. DеpTьIй пaPaмeтp). нo' в oTiи. qиe оr.тeхtвox| симвoльr мo. I),т рaслo]laгaтъся тo,ъкo oд. yпoминалoсЬ выlпе' ttaк п Р a к T и ч е с к r - Ir I е тexLЕiе1d сne. oт тextвox' дoвaтс]]ъIro ' деЙств}'Ioт тe хе o.Рaяичeвия гla uBoд' давaйтe дo6авим яn фopiry текстoвое тIoле]3aпPaшивaющeе пaPoль.
56
: }6аэьтe с.лед}.Ioщуlo стРoкy Еoдa в TеЛo кoEс1Pyктopa: :::еld рswf1d = new тextFi eld (, т е х t Е i e 1 d . P A s s W o R D) ; , теxtFle]d. NUMЕRIC
c
: -'таIiтесь' пн irе зaбыли oбъявить нoвlro пеPемевн).Io' B дalllroм сJlyqас мьI пo-!l}r oбъяB/'IеI,Iие и сoздa}rие oбЪек'ra в oдIry стpoкy этo деIaе.Iся oqеirь тIpoс. :::ача,а идет нa3Balrие IсIaссa' зar.eм вазвaниe пеPемelrнoЙ! a тIoсле сoздaпIrе
'i из Bapиантoв oбъявлеllия nеpемсIrньIx !IспользoватЬ' вь16ирать Dам' иног :)бнo ltPисвoить зпачепие l1ePемеЁяoй сРaзy nrе IlPи обl'явлeнииi a иflolдa
@ ,*-,
"
peiryльтатey пaс
до6aDиЛoсь пoлe для зaпPoсa rraPoЛя y пor'rъзoватe]rя. C пoмoщью K,iдвиlл"укaзaтe. Лeй пa мoби'[ь!Ioм теЛeфoI,Iе вьI мo)ксте пePeмецaть фoкyс ввoдa из oдlloгo ?екстoвoгo tlo,Iя в дpyгoе. AIоивI,Ioc lloJlс вьIДeлeнo бo,ec яPким цвe. тoмt и в Ileм наtхoд!]тс' текстoвыli кyРсоP. пoпРodyiiтc I,вeсти чтo.riи" 6yдь в текстoвьIе rroЛя.
(o нu p,,.y,,n" ",,"uo""uсРo. )l(еIr тrле. диспЛея
фparменT фoпa с зatloлненньrми тексто. выми !oлямI.l' o6pаTl,tте вни' пlaниej чтo в llи}rolем !оДe вьI Мo)i(eте ввoдитЬ тoЛькo циф. липIь PьI' a oтo6P&кaются
57
Ф
s
E 0) ц
o o o-
г-
relepь y вaс есть два теxстoвьlх пoля. A чтo делaть. eсли Iraм не l{уrкlro зaпPaшивaъ y пoЛьзoвaTеля' a irPкЕo всегo лиlIIь вЬIвeсTr стрoкyнa экpaн? зa
вяизy фoPмьl PаслoЛo)кrн списoIс'в кoтoPoм вaс пpoсят вьIбPaть пoЛ. oдин из вapиarr. тoв oбя3aтельtlo дoлjlся бьIть yстarioвлев. кaк и в с.jryчae с к,raссoмLisE, с пoMoщьto кЛaвидr.yкaзaтe. Лей yстаItoвитeфoкyс нa oдиIr из эJlсментoв сIIискn' a зaтем с пoмoщьIo клaвипIи sel€ с t (BьIбPaть) вы6еpиTе Ir'']шrьIй
:.:nмaтельllo I4зучL1Tе эту нe6oЛьlпyю пpoгРaммy' в ней истIoльtoвaнo сDaзv :.(oЛьIlo элемelIтoв и РазличIrьIе сп0с06ы Pa6oтьI с пeРеМеIiяьIми' пoэкспЪpи.
68
s
т Ф х
сTвия с t1oльзoвaтелем' tloже мы с ниMи ещe не Paз в€ т Рeтимся, Bедь ви oдEa 'гoмy пoлo6пьrx Pa нe o6х0дится 6ез меIllo' экРaнl приветствIrя и фPirгмсятов.
и в пРeдьIд}'iциx llpoгPaммaх BьI исtlonьзoваJlи не вьIхoдили зa Рaмки гIPеl!-IaгaемьIх те'Iефoнoм pе ций Еа l!]raвиши, в след}'Ioщей DIа!е вы у3яaете. как пPисвoить нy,rlroй к,aв ну)кIroе Деис.rl]иc,
Heмнoгo тeop|/|v|, дисплeй и изo6paжeHия в этoй чaсти мъIPaссмo'гPимрa6ory с изo6Parкения. ми и дисплeeм' I{ayчимсязaгpРкaть в пaмять I,lис.
lloЛьзoвaтьB свoсЙ гlPoгPaммеlсаPтинки'хPaнящиe. ся в фaЙлaх'
Злссь созлaеr.ся фopмa' и пooчеPеднo дo6aв.пяIoтсятPl,i с'гPoки' TeпеРь пpедсl,aвъ. теj чтo вы PelxиIи исIlЛIoчI'lтьдo6авлeя',lе втoPoI; и ,грeтье'1стрoки' пх )'дfurлr.ь,Bы !ю)'rете посTyпиъ сjсДF..пlим oбPaзoм:
Foтп
fora
.
new Folп(<Фoрмa>);
f о r l r l .a р р e i r d { . C т р o к a 1 > ) ; Гo, l'.ор.
о
.стрodэ,
',,:
/ / f o r m . a р p е n с 1( < с т p o к a з > ) ;
с)
I d
.t) t()
т
Еorm forln
= nеW Еorm(<Фopмa>);
гoтm' aррend (<стpОка1>) ; / *.orл. аррen.] (<стpoкa2>) ; F о r п . a p р е n d ( < с т p o к a ] >) ' * /
ts лlt6ov слyчаe lla фoPlly бyдет Дo6аIr,с1rnтолькo пеPвaя сrpoira, з вдРyгзaхoти].e uсPн}"ть все кaк бЬl]lo, вaм ьy'tнo всегo ЛиIllъ yдaлитЬ сlaУ,юЛы / // B Iraчале с1po(u иЛI.tпaРьI си!lволов / t Ir ' /. l'I'vвoт и все, .11o!.r!a!iиРoв:LlioсьPaсскairaть o коммeнтaРиях' не зa6ъlвaй'гс их 'lспoльзoвa.l,Ьjи скoPo вьl пol1ме,i.e'кaкoе этo мoщrroе сpедствo,
68
paбoткa исключeниЙ
Ol
.i ::JoгРaУмa в пPoцессе paбoтll мo)'rет столкЕl1ться с нспРс/iвиденlrьши си. : :i!, oт тofo' mк xPoгРaУмa въIхoдить из Irеfi ая/iapтпьlх ситуaций. Й умеет ] ее тlеIrrloсть' Прсдстaвим тaк}1lr сптl'ациIo: Bы яnпJ{сaлll пРoгРамму{tfuЦЬ : 'l пoпPoсиxll ее, ПсPвoс' чтo сделaе'r,ю6oi'i нoP дPyга пРoтестиpoвать ji llPorРаммистj дслить вa 0 или вBoдиrЬ 6yквьI вместo : :сlп въI этoтo lle пPед)'спorРсли' : ,i oстaяется oчепь д
тo вaпIе пpиЛo)l(еl]ио гIРoстo эaвиспет] а ilедoче].в пРoгРaмN1е.
сatсh(Eхсeрtion е){ сoo6щe!.иe oб oшибке l B дaнrroм сДyчaе t1РoгPaммa lrpостo вьIвс'i(етсoo6щеIrие oб oцц6кe и с в o е в ь | | | o Л t | с н и сv,. t ж н o д i t ж ( и с п o л ь J o в а т Ьт J к o й к o д :
сatсh {Еxсeption
e){ }
здесь 6л0к o6Pa6oтки исклIoчепий r]е сoдеP)rшт ви1(aкoг0 кoдa. llo да]rе в сл}чaе иск,rIoчеl,II,tе б)дет сЧи'r.aться o6рaбoтaн}rьIм' и пpolpaммa пpoдoл'tит пoлIiеIrие,
испоЛЬзуйтe
o6рa6oтLт
исlспIl]чеliий
везде'
где oни мolуr
вoзн
кaк rlPавиjo, otraсйыми yчaсткaми кoдa являloтся заIPyзки изo6PaжeEий и др! Iиx PeсyРс.,в из пaмяти. изo6рarкeния пpoстo мoхrT нe oказaться ва м Илt яrс пaмять тeлефorra мo]ltет бьIть пеPeпoлнel]a' и зaгру)тraть6yлeт нeкyла-
тb есть кoд, заключенньIй в фиryPIrьж скo6кaх' вьIпoлняться не 6yдeт. теп€pь гIojlьзyeмсяoпePaтoPoм ] (иJIи)'
j
if ( (a=:b) (a:=с)){)
о.
lo .o..u
s
tе .гФ
t
=H (вeрнo)&(8epнo)&(вopнo)&(нeвeрнo)
Bepн тaкse (Hвgepнo)&(Hoвepнo)&(в6pнo)&(Hoвepнo)=
",,Pu,n.'u. 6yдeт верIro, ведь для этoгo дoЛ)ItнoвЬlпoЛнятьсяхoTя 6ьt oдIroyслoвиe (y нaс вЬIпoЛнят ся а==b)'тo eсть кoд в фиrypвьIх скoбка-x6yдeтвЬnloлнять. ся' есЛихoтя бьI oднo yс,Ioвие oкaя€ т ся вePI,]ьIм.
t(.)
otlePaтop ! (не) преднaзначеIJд,Дятoгo, ч'гo6ьIцpoв€ p 'ть yсЛoвиеяa ЛoжI{oстL нauPимePi
т
i f ( l ( a = = b )) { l .{arrнoевъIpаrкeниe6yлe1им€ т ь oтрицaтeльIlьIйPе3y]$тaт.и кoд в фиryp}lыхскo6 кахaьпIoлнятьсяЕе 6yдет'дeлo втoм' чтoyслoвиe' стoящее пoсЛeoпePaтopa l' не дoлхсro въIпoЛняться.Paссмoтpим eщe oдIrнпPимepi lf(!(a==с))t} A вoт этo вьIpaжeни€ 6yдeтвеPным' Taк как a=1. с.2, тo a и с нe PaвIrьI,нo с )че. Toм oпePaтlrрa!' зсе вьlpa]кениeдаеTпoлo)t(иTeлЬньIй РезyjЬr'aт
нy вoT и рaзo6patlись с кoнстp)'Itцией if ''. e1se. oперaтoDaми oтIroiпеIIий и Лo'иче,киvи опеpа oPaми, ПPакгиче.ки u..t пo,...".'.i .еpьс lнl'lх пPo Р:|v. мах кoнстP}кции с атими oгIepaтoPaми " o испoлъз}roтсяj гlРиqеМ яеодIroкpатнo. B этoм вы сaми скoРo y6едиTесь. Если сейчaс вьI чelo{.o недoпollя"*. oЬ""v.i. |е l Ь . в " | в с е л o й м e ] е , к o г . l а v ь | с г а н e v п P и N { е } rJяь ] з н a н и я l l а , I p а J r и". кc ry
данIrаЯ кollстР}тiu,lЯ гаPaI]тиp}€,I вltм вьIгroxнсние те][l цlllсца как миtrиЧм
o. о) tЕ
o т т $ tФ
)
oдин pаз.
BтopьIм oпер1roРоп{ циtljlа явЛя€ T ся oпеpатop for. Егo oтличIrс o.r
yслoвиe ; выpaхeни'о, t
l Цикл Pa6ol.Aст сЛедуlolllим o6Pa3ом. (]Ilaч&llll вЬIIlo.JlIlяс'гсяипици?ljизnцIIя, [l oс' щeм слyчar oнa yстaвaв./]ивaетIl2тч:UIЫ]ое зIIаrIсниe lIсPсмelllIoi,i.(чrтчикa rlпIспoв, l']кгсNtвЬIlIoлняетс' llPoвеРкa услoви', IlаlIPимерj IIe пpеlJысилa JIlt llеРсмсlrllaя. с.Ieтчик IIPсде'lIьIlor'oirflaчеIlt]я' п(лиусЛoD'Iс веplloс! тo вьllю.лн,Ie.гся'l.с'JIo цllкJla, a если пel.j тo циIс'r зaвcРшaется и вьIlloЛllястся кoд, слеlryющий зa циr(Jк)м' ]-IoсJlc BЬIllo]IЦеtIиятелa цикrqа прoисхo/('Iт вЬllк'lпeIп4е DlIPo{rеIrия, стo'щсl.o в качес'I! вс тРетьсгo пaPаМстPa циIоla' O6ьIчп() э'I'o вьlрa'(сние yl]сJt'tчивaеl' и,]IиyмеIIьшa. ет 3rtачсIrие псрeмe}rrloЙ счстчикa' нРtнo зaMетить, чтo ипициaJIизaция rlРoис!oдI41. тoлЬl(o o/']иfl Pa3 псP€ l { iepBъIм вьпIо]lIrением циклa. нlDItс пPедсЦЕцен пPимеР rrиюц с пapaметРап{I't. for:(i=0;
i<10;
i+a){
B дaнfloм сЛ}чae тсxо циклa 6удст въIпoIняться десять рaз, нy вoт и Paзo6PалtсЬ ( U и к , l а v ии v l , o B ч | J м и o ' | с P J l o P а v / , T е п е o Ь ' гpoи|ьдl'.|атoчн'l слo)кпыe кoЕсTPyкции! ltoТoPыс сдеnaют вaпIу llPoгPаммy 6oлее rи6(oй и 6o]lес фуtiкциoнa".тьнoй.
76
T'r
исплeи
s
с)
: ]iaчaЛa l{y}l.нo paзodPaться с пoяят'teм дисllлея' BзтJtяните нa свoй тсIефoIr, :iЦите пpимеРEo слеД}тoщее:y каJ"дoгo тeлсфoпа свoй дrrсплей, Ilо ф}вщиЯ ',:::! oднa oтo6pa]ксние иi{фopмaции, Для pа6oтьI с дисllЛеем в llлатфoРме _ класс :: Dа}1миPовaнriя J2lЙЕ пPe'ayсмoTPеliьl двa клaссa' oдиIr из них :::.зy,скoтoPьIммы}тieвсTpечLrnсЬPaньше.o6ъск.гэтoroк]Iассaбудетсoo1. l :-вoBaть дисплelo вaUIeIo тс,!ефoнa, Пoскoлькy диспЛсЙ яа TелеФoIIе oдин' тo ъ€ к т клaссa Disрlаy Toже 61иет oлин' Кoневнo' въI мo)I(етесо:]дa'fьлюбoе lto. : стgo oбъe('!os' нo в этом нet смьrслa, Tак ltaк oнI.t все будут сooтветствовaть ]\п и тoмy )i{сдисплею' .
isсoIor{). этoт п'eтoд прoвеPяет' яr,ляeTся Лq ]Jl-\слneЙ TеЛефoнa цвeTЕьIM. ЕсЛи дIrсплeй цв€ т lroйj вoзвPaщaeтся знaqсtlиe true' в пpoтивIroм с,yqaе вoзвPащaется fа1se.
.шrnсo|ors().BoзвРaщaeт
цветoв'пoддеp]{@вaеlrьrxдисг{Леeм. ъi
s
: ш ч P P н o . 6 е л Ь l хм о н о \ P o \ l н ы x д и с п л c е в в o J в P а ш а e ] L я . } н j ч е н и е 2 . д / 1 я :lстIлeeв с гpадaциями сeРoгo меToд вoзвpaщaет кoличествo oттеЕкoв сeрo" .o. a д/]IяцЕетIiы-!( дисплeeв _ Roличествo цвeтoв.
l . и ' . о s a н и eи , . , 6 p n ь е I | и й н а a h P а I | (ч Ь . P , | ( l ! . ' t Р и м л o J ж t ' ' а | J J г o м p J u e l с м ! { \ ' I и t l . я Л о 0 d ь , Я j Ь j , о , i o ' l | , , еи J ' 6 P . r ж ч ' | и h н.l ф',Рчv кс гJ |и' llo!ни гс' np.' .o'uа,
L
сliискou и дPyгих oбъектoB ]l качестве xlрaмс;гра 1mаge мьI yкаэьIll:Lпиn;11' lю пo3)ке N{ьIэтo испPaвим и пoмссти!' nзo6P1xеlrJrя pяlll]п{ с тia]rвaIrилмиlл
I
Bсe изo6рa'rсни''
f-
с) Е
].|j.lll'."..j" ф.р',* IlinJс(ьэlUгo
J) l.(J
б т
(oтopыe мьt 6!дeм испoЛьзoвa,Iь в свoиx llРиЛoЖeilияx! дoJI pNG
,:.1а.lIьп!е'.цorryстим, y Еaс сстъ изo6Pа'iеIrиe и fiaп{riРкнo 3aгРvзиTь егo в lra. ... телeфoнa. дЛя этo1'о исlloльзyеl{ вo3мo)квoсти liцaсс?r тmаgr. дЛя зaгру3Iи j гo пзoбPa'(rния вoспoЛьзyемсJl метoдoм стeаtеImage ( ) , . no g е = - ёо б ,/ sourсe-
.о t е]дagе
llylъ к фai.iлyпзo6pахеIIия, з
"soLr..-. Ioмните' чтo все изo6Pа]ксEия дoп{IrьI
]xtться ! кa].аjlolе les вaIIIеIo пpoекm! ивaqе пPиложеIrI4е Irс смo]кeт их нaЙти. oIIPедсЛястся oтtloсI]тельrlo этого кaтilnoга' нaпPl,lмеp' :ir ! вaс есть изo6Pa]кснис img.рпg, хpallящееся в ItатiUIoгe resl Тo стpoка lrодаj
]lжa!rщая этo изoбрaл(ение в память' бyдrT вьIглядeть следylощиi1 о6разov: 1 m a g e = т m a g е .с r e a r : е т m a g e ( < / i п q , p n q > ) ; эaтиTe BIIимаIrи. нa символ /' сToящий
llеpeд яaзвalrиeп{ фaйла,
8з
E с)
итfiq изo6Pажeтrие мъI зaгРyзили' нo нaп{ пqдo I€к.тo пoместить еIo нa фoРщ tI чеrо пoдoбнoro с o6ъеI(Toьf кЛaсса тmаq'е сде]raть i{ельзя, нo нe 6едa' д/Iя этих ц лей с}'iцествyeт кJ'IассIпаge]tem. им-тo мы l{ вoспoЛьзyемся'
загoлoвoх. текстoвая стPoкaj кoтoPaя 6yдет oтo6рaкaТься в кaчестве ззп Л O в к аи J o б p а A ( | 1 и я ,Ё . . | и в ь | | l е с o 6 и P а е j е с ь и с л o л Ь з o s а l . J J I o Л o в o к , y с t : qoвите этoт пaРамеTp в nu]].
дoбaвиNt дo и гIoсле дoбдвЛe. IIия изoбPa'(еllия нa фoPмy no тeкстoвol,i стpotсе, To eсть| f o r m ' а р p е n d ( < < с т p o к а > ') foтm.aрpеnd(iтngitm)
;
folm. aрpеnd (<<стрoкa> )' PезулЬl'aт изо6P
кеIi слeва,
87
ц
s
E q) б о.
\o s s )s Ф q Е
s j
s oa) l-
lro Yмoлчaliиro все элемеятьI размeщaются в oдяy стрoьT дPyг зa ДP}тoм в их дo6aвления нa фoPмy, Если кaltoй.ли6o iэЛемеЕт '{е пoмещaетс' в стpoке' olr pенoс'iтся нa сjедyюцyю. Ес"1r, )xе вьr хoтите. чтl)6ы изoбpa'(епIrе 6ыJto oд1lo стРoкr' мo)rrяo вoспoЛъзoRaться гIaPaметpaми LAYoUт_NЕWLтNE_вEFORE и LAY OUт_NЕWLтNЕ-AFTЕR.
imageз = тmage,сrеаtеImaqe{) ; ] с a t с h {Е x с е р t l o n
e){
l итaк' мы llonьIтались 3агP}зи,гЬв паNtять изoбPaксния'
кoтоPьIе 6yдeм испo-
TьпеpЬ дo6aвиM кoд' создaloщий сoo6щеIrие и oтo6Pа{€ ю щиI:i a1ert
еl.o на экр"lв:
= net,{A1ert (<Зaгoлoво]r>, <тeкст>, imaEelnuL1);
a l e т t . s е t T i п e o u t ( 1 0 0 0 О )i D L s р ] a У . g e r - D is p l a y ( t h i s ) . s е Е с u r т e n t ( a l е I c ) ; nPи сoздaнии oбъеIrTa сoo6цeЕIи'I в кaчес].вc трeтьеro llapамeтрa NъI укa3aци ек1.imаge - и3oбpat{снt'lc' хpalrяцееся ! лaмяти те./Ieфoнa,
L
o
@ ъ,,"pu .*o',,',,pyll'" '
.г
зalIyс1.итс IlPиЛoжеIlис'
{
B PeзyЛl'м'гс lla экрauelкхDlrl' ся сooбщeпиe с кaP,гиI,Iкoiiсимволoм,lзЬlкa Java,
I!emlmagel.{IDleu( ) ( t Imagе = f mage.сreateтmagе ( j avaр,1с.png>) ;
$
i m a g e 1 = ] m а g e . c r : e a Е e ] m а g е ( < / s h а r i k . р n gi> )
l.(.) б т
1 m a g е 2- I п a g e . с r e а t e ] m a g е ( < / I n р i с . p n q > ) , i m а g e з r I m а g e . с r e a t e Т m a g е ( < / s р i с ' р n g >; ) } саtсh (ЕхсepLioп e)t )
1i st . apРend (<. imaqе2 ) ; lisL. aрpеnd (<siemens>,irnaqе]] . Disр]aУ. gеLDisp]аУ (this ) . sеtсurrenE ( 1i st ) ; ) O6щrй !риIrциll пpименснля изo6рarкений в Paз!ичllыx эIемеltlах итIтерфсйсa п p а l { т и ч е с | {оид и н . t к o в C , чачarа вьtспov''Iцьlo o.]A. 0eгn '".. ."'i.й"... изtl6рм€Irие в пaмя'rь. затеM, сс,tr Baм тJ''fllo 71o6aвить изo6pокениe ', ф;Ё1{y, ". сoщaeте o6ъект Imаqeтtem ши )кe xPи сoздaнии эxeмelrтaj налРимеp списка' y(aзьшаeте IРкнoе nзoбРa)ltel]ис' B сxeryroщей чaсти вьI yзIraеrс] кoмaEдьI ддя шanМoдeЙсTвия с пo,ьзoвaтexеМ и как о6Рa6а1ъlвaть па]к
92
Чaсть
5
oбpaбoткa KoMaнд B этoй чaсти мьI rrayчимся Pa6oтaтЬ с кoмaндaми и сдeлaeм ваttlll пPилo't(eяия 6oЛеe иI,Iтepaктивными'
E б б t-
o\o LO .о т
t,oбaвляeм кoмaндьl llo сиx поP пlЬl никaк не мoтJIи пoвЛиять Ea прилo)кеrrие в l1рoцессе егo ния. сeй.raс мьI6)'дeм Йспрaвлять этy ситyaцl{lo' пoмIrитe, o6ъeктъl клaссa DlвplayaЬle мollт сoдеPnraть кoманды| с rloм кoтopъlх приЛo]кeнI{e взaимoдействует с пoЛьзoвaтеЛс!"{,
(D и'a*, сoздaй"e 'ou,,й 'lPoект
и
llазoвите
егo
si mp leсom mа nd P roi6ct ' B пoxe tvl|Dl6tclаss Name (на3. вaIтиеr.пaссaмидЛ€ т a) введите sImрI6сommandм|D|эt'
:n,lитсl мьI 6yдeп{иoroЛЬзoвaтъ тPи lroмaндьI: /rЛя пeРeхoдa к Eeрвoй фoPмеt :pexoдa кo втopoй фoPMe и для вьIхoда иэ l1PиЛo)кelrил.
э1.oв oтllе]Jънoйфyнкции. :rсPЬ.цaв.rйTe сoздaдим яaшlи кoмaндьIи сдeЛaeп{ .i.troвемcс' нauPиlteр' оroаt€ с ommаnda' 1:е void сrеaleсommands ( ) { - n e w с o n ъ п a n d( < I , { aФ o p 1 ' ] y 1 > . с о m m a n d . S с R E Е N ,
1);
E o f o т m 2 = n e w с o п m a n d ( < I , { a Ф o р м y 1 > . с o п l t r r a n d. S с R E Е N ,
1);
Еofolm1
ехiE
= n е W с o m m a n d1 < в ы x o д > , с o m m a n d . E X I т ,
1);
.oздaнии комаtlды пaм тPебyeтся укaза'гь три паPaметpa| загoлoвoк. CтPoкa симвoЛoв, Itol.opaя бyдет oтoбpa)каться в *aqeстве rtазвa. Irия кoмalrдЬI. с1poкa дoл]кна 6ъIть дoсr.a,r.оч}roкoPoткoli и сoдeрж'!ть иIi. фoPмациto o нaзнaчеЕIиlr кoмaпдъI' тип. пPилoжеIrис исlloxьзyет тип кoмaндьl д,я ollpеделеrrия ее IraэIraчеEия и otlpеделения ее местoгroЛoжения. нaпpимeP, кoмaндa выxoдa вo rffroп.х тeЛсфolrax имеет стaндaPтЕoe мeстorloлor.еIrиe' TиrIьI кoМaнд и их oписa. ния гI€ P eчисЛеЕrы в тa6лице ни'€ .
, \tьI сo'{aем нoвyю формy с зaгoлoвкoм Фopмэ 1, a зaтeм' что6ы фoPмa нс 'в.ula.до6aвЛ'Ieм }raнсс сТpoкy этo пeрвая Фopма' 1 . a d d с o m m a n d( t o f o r m 2 ) ; -
: ] : { с = = i o f o r m 1{) Display. gеtDisр1ay ( lhis ) . sеtсurrent (forтn],) ;
: ::oсryгrилaкoмaндaп€ P € х oдa
lia пeрвFo фoPмy'делaeмеe aктивЕoй.
; r f ( c : = t o f o r m 2 )t DisplaУ. gecDisplаy (rhis) . setсurIеnЕ ( f orm2) i l ]:ь дeлaемaктивнoй втoрyю фoPмy. пPoстo' Aсейчасдaвaйтe llPистуilим ктестиPoвa. :: rloй взгЛяд'всe tlPедеЛъt{o . ]]PoгрaммьI.щeЛкЕите мъIпIьIoнa кяoпке вultсt(сoздaть), Чт06ы скoмпили. ]]:ь гlpoекT'п,слиl.ol'пи.llятopвьIдaстoцIибки,IroстaPaйтeсьlraйти иx и испPa. . самoстoят€ л ьr,Io.Если вaм этo н€ yдaJoсь, вы мorr.eт€ нaйти пoлIIъIйтекст .niммы нa I{oмпaкт.диске.
e ] s е i f ( с o п n d = = n a z a d ){ Disрlаy. getDlspLay (this) .sеtсulrent {1rs!) i e l s e i f ( с o m n d= = l Y b r a t ) { i f ( ] i s Е ' s e t s е l e с t e d ] n d е x ( ) = = 0 ){ D - s р 1 а v ' с е Е D , , s p l o yс h i 9 . . е . с l r ! e n с ) e]sе
i f { 1 j s Е . 9 e Е s е 1 е с t e d I n d е х ( ) = = 1{ )
D-sp]ay.9еLDIsp-ay сh1" } е1se
..тl l ,;
e!.Lr.еn-
Ех:ъx ;
i f ( 1 i s t . g e l s е 1 e с t е d т n d e x ( ) = = 2 )t
D:sр1ay.gеtDisplay(r-his).sеtсurrenl(fоrm2) ; l е ] s e r f ( с o m n d. = o с h i s t i t ) { tx!bх.setstrinq{<>); е1sе if (сomnd =. .r'Yhod){ notifyDestroyedO;
] рroЕесtеd
void
InrLList
stа.|дpр
{
{) ;
DisрLaУ. geiDisрlay
102
()
(t h i s ) . s e t с u r I e n t
(L i s t ) ;
сreacеform1() ;
o з
сreaLеfоrm2 (); сreateтеxtвoх
proteсtеd
vold
o
{) ;
т :0 Ф
pаusеApр ( )
{] -.
private
void
lnitLrst
.o..)
tl
O {
= n e i " l L i s r : { < в ы б е р и т e ф o р ! ц .: > . с h o i с e .
]ist
1 1 s t ' a р р e n d { < < Ф o р М a >n, u ] 1 ) ; . 'o o 'с, .dрр.nо,.lеiсloвoё
, .ull
II,IPLIсIт )'
-.1
;
1 i s t . a p p е n d ( < и з о б р a х e в и e > l r L 1 r l }) ; \'Yhod . 1rybrёL -
n e w с o п m a n d ( < в Ь I х o д >, C o m m a n d ' Е x I T , е!
t x t f 1 d 2 , s е L L a y o u c {I t e п . L A Y O U т _ R т G I j т ) ; ,orт qo ovo oлd . s' RЕЕN' .H",OД^
,oт.
d...o,
Е\,
,\
:
2];
10з
f.rfi
t б
]
:nnФnd
ltYr
fl.i]
r.
form1.aррend(txtf ld2) ; form1. apрend(сhqтр)
i
Ф t-
foIn1 . addсommand ( nazad ) ;
б о.
form1 . setсollmandl,i stеner (thi s ) ;
\o \o l.г) J)
] privatе
vоid
try
() {
= new Form (<изoбpa'{e}rиe> ) ;
form2
t(J б
сreatefoтm2
{ ilпagr
= Image.стeateImage(кenny.рng>)
) сatсh (Еxсeption
;
e){
) imаgeiЕem: n e l r ] m a g e I t ; m ( < к e н н и >/ imаgе, тmagеI!еm. LAYoUт-сЕNтER ]magе1tеm. LAYoUт-vсENтER I ImageIt em. LAYOUт_NEWL]NЕ-AFтЕR ImаgeI tеm. I]AYoUт-NEWL1NЕ-BEFoRЕ , < (рreviеW f^rm)
Пo.t'oтPиv, ч1o пPоисхoди1 в |lpoгpaмме' кorдa тIoЛьзoвaтель вьI6иРaет гoтoвo. эта иl,IфoPмaция посTnlaет в 6лoк Jtющй фPaгмеIrт кодa: ii
(сoпnd == qotovo){
F
strrng
nапe;
\o б o\o
strlng
suтnаme;
str1ng
sеx;
d
паfle = txt f1d2. setstrinq
д t(J б т
();
txtfLdl.getStrlnqO; sеx i
сhsrр.geistrlng(сhgrp'gеtsе]eсtеdтndex()
);
= nеW A1eтt (<<инФoрмaциФ аlет! l >< в a с з o в y т < + n a m e + < '\ n > + + surnаmе +<.\n>+<вa пoл>+sеx, nulLl A1er!Tyре. сoNгтR}rIAтIoN ) i a 1 e I с ' s e с 1 , L m e o u (тA . L e r Е .t U к в V Е к ' ; ' - ,с' сaF.l-.еnс(аlerс);
v t,сЛи в пeрвoпI сllиске BьI выбсPете rryrrкттeкстoвoe пoл6, Ea экРaне пoявится ()6ъ. еItт '(Лaссa тe)ttвox.
l E
o Ф -l
BьI мo)кетe вводить и Редакти. Poвaть тскс'1.' МaксимaЛьIroс i{oличeствo ввoдиl{ьrх симвo. лoв . 200' Bьt Е,rть сгo в Tексте пpогPaмI{ьl|
i.t фoPмe пpис)тс,rвylo,г двe кoмандьIioчиcтить и н0з6д. EсJrивьI вoспojlьзy€ т eсь . )}laпдoill{азoдt вы BеPrlетеськ нaчаJlьнo]lty спискy.ЕсЛи зaTсм вЬl из нaчаJIьItoгo пoлe, нaэхPaне сltoва lloяви'гсятекс,toвoe :IItскaсIloвaвъI6сPе,fclryнкттoкстoвoэ вьI егo oстaвили в rroследнийPаз. )-rс,нo'гeкст в нем 6yдсттaким, кaкrtм тeхс'].oвoгorloля. исltoльзyй,lexoмarlдyoчистить. iт()6ьIочис'гитьсoдeP,кип'Ioe :епсрь пoсмoтPим' кaк ра6oтa€ т кoмaндaoчиcтить. : ( с o m n d= = o с h i s t i t ) { t х t b x . s е t s t r i n g ( < >) ;
( ) исtloдьзyетсядЛя устaнoвки тeкстoвoЙ стpoки в тeксloвoм \lетoд setstrins стpoкa зaмeняeт сo6oй сoд€ P жимoс :oле' Устaнaв-rrивaемaя з дaнЕoм сJryЧaемьi прoсто yсTaнaвЛивaемryсryro теlсстoвукtстPoкy. oстаJlся :]оследнийпyвкт списIra- изoбpа)кeни€ .
109
Е Ф
o б F
o-
\o
o к) f-
(.)
(J Если вы eгo вьr6еpете,нa экPalre пoявится фoРма с изoбPа)ltениeм. кaк lra РисFr. B дalrнoм с-пучaемы испoльзy. ем изoбрaхениe с зaгonoв.
if (itеm==схtf1d1) { t x t f L d l . s e t s t т i n l r ( < > ); ] e]se
if (itеm==txif1d2) {
txtf1d2. sеlstring
( < >) i
j
} e ] s e i f ( с o m n d = = o {k ) j
) protесted
void
sЕartAрр { ) { сreаteform1 ( ) i
cтеalеаLerс (); D i s p l а y ' g e L D i s р ] a y (t h i s ) . s е t C u r r e n t ( f о r m l ) ; \ р r o Е е с t e d v o i d р a u s е A р р( ) { ] рIotессеd private
vlrid dеstroyAрр (boо]еan Iоrсе)
void
сreateform],
() {
forпl
= nеi7 Form();
сhgrp
= nеФ ChorсecrouP
txt f 1d1 = nеw теxtField
112
{}
(lсhoiсe.POPUP) 1 < Ф a м и л и я > ?<,' > ,1 6 , a ) r
txtf1d2
= n e w т e х L Е i е l d ( < Й г I я > > , < > ' 1 6 ' a i)
r.xt f 1d1 ' sеtLаyout
(тtеm. LAYOUт RтGчт) ;
,,x,i
(Т .l 'iрYoUТ RIснТ);
сr '.., I.vo
т
l . Y h о d = n е ! . i C o m m а n d( < B Ь i х o д > , с o m m а n d . Е х т T , oсhistit
stтitem
o
= n e l i с o n n n a n d( < < o ч и с т и т ь >. с o n m a n d . I т E l r l , d.. o..., o r L a . d . . - l v/ ". = n e d s t т i г r l r l t e m ( < > ,< г o т o в о > .
stritem. ЕetLayout (Itelп. LAYOUт сЕNтЕR Itеп. LAYoUт_liEi.]LINE_вЕFoRЕ) ; с h g r p . a p р е . d ( < < M y ж с к о й > ,n u L 1 ) ;
Е x t f . l d l . s e t I t е m с o m m a n d ] - i s Е e l l е ri t h 1 s ) ; Iis. 1.); ",d{o E х Е f l d 2 . s e Е I r - e m с o m m a n d l 1 s . е з е r( t h i s ) ; Lч.
ld2,dJd.oш
s t r i L e m . s e t D e f a u ] t с o m l п а n d( o k ) ; s L r i t е m . s r t I t e m с o m m a n d l i s t e n е r (t h i s ) ; toin1 . sс rсomm.lndllstеnеr
.r
] ]lit
д
(this ) ;
1,.],l
string
naпe'
string
surnапe'
strlnE
sех;
4amе = tхtf]d2.seLstтinq()
;
11з
txEfLdl.setst.insO;
E б
lo'o'о.stri.lсl
.,!еoIлdёx,,';
= new A]еrt ( <<ивФopмal-{ия> alеrL , <<вaс эoвyт>+naпe+ < <\. n > + < в a п a ф а м и л и я > +s u r n a m e + < . \ n > + > в a ш nu1l,
l-,
o. \o F б т
CONFIRМAT]oN) ;
a1ert . sеETimeout (A]еrt ' FoREvЕR) ;
Ф б
rt
Alert.IУре.
Disр1аУ. gеЕDisp1aУ (this ) .setсuIrеnt
(a1ert);
) IIеpвoе oтли.rиe oт xpсдьlдyщей rlPolpaмп,lьI этo lliЦичnc слoвa тtemсolrr,nandl,lstener в ()6ъявЛ€ п ии глaвнoгo кJrасса' oнo сBидете,!ъствvет o I o м , ч . o м Ь I с o 6 l l P J e ч с я и с l I о л | , J o s a т ь6 J j o к o 6 p a 6 o г к и к o м а н Д ' l l P е д н а : l н n ч е | l н ы й д,я кoмalrд' Пoстyпaloщих oт элемeн't)в иптePфсйсa. Зaмeтьтс, чтo слoвo сommandlis!ener тaкжс lтpис}тствyr r' этo знaqит| чтo буд}"rисxoлЬзoвaться кax кoмalrды дЛя всetlфoPмьIt тa( r,IкoмaндьI для oтдеJlьньIx элeМeнтoв. в РeзyльTal.с в нaшeй пPoгрaмп{e oка3.Uloсь двa мeтoJ{а с rтaзвai!иeм сommаndAсtion ( ) . oдI,Iн из них llPедназнaчefi дЛя o6pa6oтки кoмaE/l, IIPихoдя. rцих oт oбъсктoв кJlассa Displayablе, a дpyгoй дJIя о6paбoтки кoмaъIд|tlPихoдя. пIиx oт o6ъск1.oв lqaссa Item'
(D
оno*,,,,,рy*," '
"uny.. титe llpoгрaммy. нa акpatlе тIoяви1.ся фopма. и3o6p&кеtr. 'ия нa pис}'т{кeсIlРaвa, Фoкyс ввoдa Ilа-хoдится в текс. 'гoвoм пoлel uoэтoмy в ви'tнсй чaсти фоРмьI пoявиЛaсЬ кoмaндa oчиcтить, B!сl(ите лIoбoй,l.cкс\ a затем нa]rrмитe кпo!кy oчистить' l.cкст 6yдет
: . . j i t e m . t е t L a y o u t {I L e m . L A Y O U т _ с Е N т Е R - -: m . L A Y O U т _ N Е W L I N E _ в Е F O R E ) ' ]]It стpoки сoздalот o6ъeкт ю'raссa strinqтtem, тo есть текстoq'ro стpoI"T.Tип j ,:тoN oзI]ачa€ т , чтo стpoira 6yдет вьIглядетъ и фркuиoниpoвать кaк квoпкa, :::-f 1d1. аddсoпmand (oсhistit
);
: :::f ]d1. sеLIЕеmсonrmandlisЕener : : : : f1 d 2 . a d d с o m a n d ( o с h i s t i t
(Lhis ) ;
);
:i: f 1d2 . sеE тЕemсoшrandli stener (Ehi s ) ;
115
t б
o
Здrсь мьI дo6aвЛяем кoмarrдy oчисTки к текстoвoмy пoлlo I{ yстанaDЛивaем o6Pъ 60т.r!rк кoмaEд' Блoi. o6Paбoтки кoмаtrд для элeMевтoв иIlтеpфейса yс ( ). в кoтopьIй в кaчeсTвe rlapaся с пoмolцьlo NIeтoда setтtemсofimLandlistenеr мeтРa пеРедaем клloчевoе Оlloвo Еhis' stritem.
нaс o тoм' кaкая клaвишa нa,€т1 нo кaк этo сдeЛать? BеДь мьr lroкa Irе знarм. вывoдIrтьипфopl€ ц ию нa сanwas, B таIшх слyч;tяхyдoбнo испo,IьзoBaтьмe].oдьIкjaссa sysEem. нe бyдyBдаIlaться пoдpo6нoс'ги PaбoтЬl кЛaссa. a тo,Iькo ска){(y'чтo с,гpoкa s y s t e m .o u t . р r i n t l n ( ) , вьlвoдит IrРкII}'ro стPoIry нo вьIвoдитяe нa экPaп мo6ильнoгo телефo'{ata нa сoлЬ. этим сlroсo6oм очснь yдo6нo тloлЬзoвaтьсяlvlя вьIвoдaРaзличнoй слy,t( нoй инфoPмaции в oUlaдoЧньIxцeл'Ix' итaк, пoMеститс в метoд keyPrеs6еd ( ) следyloщyюсl.Poкy. system. out.рrintln
(<кoд KлaвиDlи:>+ kеyсodе);
o нy ''o *., .*o*u,n,,,"Dй-
те и зa[yститe rrPoeкт нa эк. Раве lroя]rи,{сянaзвaliие пpoF paммьl' кoтoрyю зarryстить с I'oI\(orцьIo кoмali"
ды Lаunch (3arryстить).
Эxpaн тeлефoнa изo6Pа)lrеп Iraрис}нкe спPaвa'
120
].]еРь пPи вФФтии lolaBпIIIи нa эмуJtятоPе Tелeфolra яa кoнсoЛь бyдет вьIвoдriть. : rPоitа с кoдoм этoй юraвиши. .!аilтe дo6авlril еще oдI{y стРoк} в меToд keyPrеssedi :-em.out 'рrintln
о\ Ф Ol -.t
)'
( < н a з в a ! l и е K л a в и ш и : > + g e t к е y N a п e {k e y с o d е ) ) ;
:тoд lretKeyNаme () пo.rlучaeтв кaчестве пaРaмeтp кoд KlaвиIIIи' a вo3вРащaет -окT с rизваIrrrеl! этoй кJIaBиши' B итoгr, вся стPoкa бyдeт вьIвoдlrть li:r:}вaниe нijl'
Ф т Ф -t
s s(
6Y .
A теlIеPь зaгryсти,.е llPoF РаМN!y.нa эxРatre вичегo не и3меIIIIтся. и тoлькo rroявиB. lrlaяся I(oмaндa вьIxoд и исqeзнyвllrая кoмaндa Lаuпсh (3aflyс'rить) б}'д}т свидсTeЛь. ствoва'l.Ь o ,roмl qтo гIPoгPам.
Ф
s Е
экран ,rслефolla с зaxyщеI,l. ной ПPoгPaммoй,rзoбPaкеIr
ДсЛo в тoм, .rгo зa рисoвalrиe нa экРaне oтвeчает мe,гoд paint ( ). а oн, кaк вьI пoмни. те' в дal{нoм сЛуqae Пyстoй' Bот пpliлo'€ н иir и яе lIеPеРи.
/tt
r!фЕфd'
eовiФй'
. .:т:]**Niiflнi"'
Фsdh.'.чМe'fu
Ефф
t, А тeпсрь rlaя(i,lиTелю6yю клaBиIuy.нallpимеP 5' Ha aкРaне нe upoизoйдет ни. стpоки кoд клaвиu]и: 5з и нaэвaEиe клaвиши: 5.I(aк нa plrqтке сЛrва,
]}i вы заn{етили. xan(дая Iс[авиIIia имеeт свoй кoд и lrаэваlrиe. Есxlr вaм пoliaдoбti'r. кoд rrа]l{а. вьI мo'(e'ге сделaть этo' пРoвеРllв i \знать, i{a(aя кJIaBиlIla бшa нaхaтa' пoэтoмy кoдьl KЛaвиIL! 6ьIл() 6ы llемяolo Зaпoминaть il кnaвиIIIr' )тoм!тельIIo' к 1oй или и1roй к,!aви lе, iЬIчнo исlloльзyoт кolrстaнтьI, oпloсяrциеся
в сЛе,T'loщей Чaсти мьl пPoдo'Dким Pа6oт,v с клaссoм сanvas. a таюl€ rloзliахoмимсl с кЛaссoм Ganrесanwas' вы yз!aетс' ш Рисoвaть leoметPичeские фиryPыj двигaъ их пo экPаI'! созддaъ alrl{мaци!],
I zz,
Чaсть
6
Учимся pисoвaтЬ B этoiiчaсти мьl из)"{им oснoвrrьIe пPиtiципьI Рисo.
J) tб
o (J s
о. (-)
s (о f-
(, б т
Moдeль экpанa ПеPед нaqаIoм изyчсEиЯ Ри' сoвaния Еeo6хoдимo Рaзo6Рa,lься' чтo и:r себя пРедстaвляет дисIтЛей телефolra нa ап. пaРaтнoм уPoвIlе. v Если yвеличитьдисflлей в l00 Paз' тo вьIувидите' чтo oп rlalloминaст сoбoй сеткy. сoс. l.oящyю ш оrPoмнoгo Iсoличе.
Taкxe oбpaтит€ вIrимalrrae, ч,ro oтсЧет i{aчинa€тся с llyЛя' To eсть кoopl{иIlaтa пиксeЛa, paспoлo]кеrrнoтo в лeвoм веpх. пем длy экpaнa.paвяa (0'0)' чтo тaкoe дlrсllJlей телефoнa' TеtIеpь вьI )oIсе пpедстaвляeтe.
яyкнo paзo6paться.какlrtrio6 pa3oмфoрмиPyется цвет тoгo или инoгo пиксeЛaи I(aквooG щe IIPедстaвляeтся цвет B цифPoвьrхyстРoйства-!'
125
-0 tФ
s o-
Bвeдeниe в тeopию цвeтa Bьт 1'хе 3i{aeтe' чтo дисплeй телефoнa xРедставjяeт сo6oй сетку из бo-lЬшoго
(J
s т
(o д t-
iA v Е€ л и tъе,ичить llикссл вo мнoro paз' r'o мoжнo бyдет yвидеть. чтo oli сoстoит lIз тPех чaстей:(paснoй, синeй и зеленoй. oт иЕтeIlсивIloсти свечения тoй или инoй части и зaвисит цвeт всегo rlикссxir' нa'lPимеP' если интeIJсив. яoсть свсчеrти' зeJlенoй и си. нeй чaсти 6yдeт прaктичeски нyxевaя' a кРaсrroй макси. маЛьнаяl
тo
Ilиксел
будeт
иметЬ кpaсньrйцвeт' нyЛeвaя интснсивнoсть всex Чaс].сй 'цaст qePfiыi'i i]]rе1,a максима-llьIlaя
B цифPoвoм миPе цвет l1PедставЛrется в сJlсflyюII{емвиде- (R. G, в). цe в - иЕте* сивнoстъ свеЧеIIия (paснoIo. G - инr.епс'Iввoсть свеЧсllrя зcЛснoгo' a в - интеr} ljивнoсть свеЧе}lия синeгo. To eсть (0, 0. 0) 6удет пPсдсTaвЛять чсPIiьIй цвст' ка)кДьIй из пaPaметрoв мo]l{ет гIРини!{aть зпaЧепия oт 0 ,цo255' чтo в суlttrIепoзв& ляет вoсtlpoи3вссти 16 777 216 цветoв, вoo6це.тl] дисплей сPеднегo Телефoнr вoсnporввoдит не 6oЛее 4096 I]ветoв' тaк ql,o дaннo'i систе]шьIпpедстaвJIеIrия цве тoв 6oIee чeм лoстатoчнo.
126
Iтl ;':. loяrет вoз!{ик}''Iь впoЛiie Pезoнl{ьIй вoпPос: (A кaк yзlrать, каIс бyдет вьIт'Iя. вьI хoти'rе сoздaтъ NIzUIиЕoвьlй в!це?>, tlaпPимеP' . п>(ный цвет B цифpoвoм Ф . ', нo не имеете лPeдстaвЛeяия, кaкие зI{aчения R. G' в нyяtнo ввести. чтoбьi гto ]ть )кeлaeмьiй peзynЬтaт' oдин из ваРианToв - пoд6oр. To естЬ вы метoдoпf бE 'j tl oшибoк вЬIстaвляете 3нaчelrия R, G, в и смoтpите' чтo l1o-]тrraстся'tlедoс. s i I э Г o г o [ , l е л o л /г o л ь к o o д и н - в ь | l o ж e | с . l o I P a т и т Ь y й м y в P е v е i и , I r o , r а к и -o-nr1ить )келaемьIи peзyльтaT' -l
: :rас мьI PaссмoтPим 6олeс эффект'tвнЬIйtr{етод'Делo в тoltl чтo в ЛIо60мгPa. пanит. :есI(oitРедaкToРеесть инстрyмrнтЩя Paбoтьrс цветoм' orr IIазьIвaется и визyаJIьIro вьr6paть пoдxoдяlдий l}ьiмo)l€ т e ] с пoмoщью па-ци,lpЬl цвет пoлy. Boзмo}с1а и oбPaтIrая oпepaция' ]; еIo цифРoвoe пРеlrс'r.aвЛeние'
эЛeментe цвeт/зgливка (сoloг/l,iu). Е€ л и !ьI хoтите rrpoизвесr.и6oлee т кyю ви3yаJlьIryюнaстPoйкy llBeтa' DьIмoхс'fe вoсlloJrЬзol]атьсяllonзу*lкoв Pеryл'тoрoмt PaсlloлoжеlтнЬrмв nPaDoй ч:tстидиаJIoгa.Bсс иitмснe!тDl'вьI
дeте видeть в эJrсмeнтe цвoт/зaливкв (сolor/l.ill). кorДa lloлytlенньlй вaс 6удeт lloЛяостьIo yстрaЙвa'гьl noсмoтPитe rla з!IаЧс!iия пoлeй кpаc (Red), зeлeный (оreen) и синий (Bluс). otlи и бyдyI сo/(сPжaть llухtlьie знaчеяия в фoPмaтс RGв. иmк' TelIсPЬ вьт зпae.r.e'как tIPсцставить tly)кtl
цвет в фoPмar.e RGв. oснoвIroй мсr'ol(, кoтoрr,lм вЬl6удс'гс пoльзoвaться yстaпoвl(ицвста - seEсo]or ( ) ' в кaчсствe llaРaмс'гPoвoт{пPиrtиМaeTTPи JloчисЛeI,IныхзI,IaченияBдиallaзoнe oт0дo 255' l-)'гoи ес'гьзIlaчeIIия R. G. в цIeгo цвeтa' Fly чтo )lrc, с мoдеЛьIo экpaila и Tеopl,rей цве,гa вы y'(c
ЛисЬ' IеrrсPь'я дyмaю' lloPa пePexoдить ilelroсРсдствеппo к Pисовarrию'
q'sеtсo1oI(сo1oI); ] итaк' пaшIмeтoд пpиItимaетв качесTвeпapaметpa06ъект клaссaGтaрhiсs' ltoтo Pый мьI и бyдем испoль3oвaть для prrсовarrия.
1з2
(o с^"o,o пРостoймrтoд s
Шиpинa
oчистиTь экPaIr - нaРисoвa.гь npямoуIoxЬt]иi( Ira вeсь экРатl. .цЛя этoro мы 6tдем испoльзo. вать мeтoд fi11ReсL ( )' кo. тoРьIй зa,rиRaсr Р{aзаяllyю o6. ,aсть цветon,r. aктIiвEым в дaн. !ый i{oмeЛт. R кaчестве пaРa метPoв' меToд гIpинl'мaет ко oPдlrlrаl.ы xеl}oгo DеPхнeтo yг. Ла зfulllв.rсMoй 06ласти' a тaк. я(с сс lllиPиIry l.t высoтy.
Есr€ с Tвe}пro' кooPдиIIaтьr лe. DoIo lJеPхflс'.o yrЛa 3aлпвaе]!oй oбЛaсr.и бyдyr сoвпaдaть с Леl}ьIм веPхl{им yглoм дисп' ,ся. 1.o есТь olrи бyдy'г Paвньl (()'())'для yдo6сrlla мьI o Peдeли,l{ э1.и кoоPдиllаl'ьI l] llepe'
@ !)
т
s .T !) 'o-
s
Ф о
s
o\ d Ф -l @
]сIr lIуxIlo узllaтЬ вьIсolу и шIиpинy o6лaс'lи. OIrи. сoo'l.ве-l'ствеl]tlo'6)?l}т сoвnа. и : :I' с вьIсOтoй и шиPиtIoй экpaшa. дл' э'l.oгo IrdI('Iьзyeм мe'rюдьIgetwidth() :.еight { ) ' в()3дPalцnющlle шиpиlly 'I вЬIсory экPaнa } IIикссЛlLх. -:я o.Iис'r.ки экрaln oчeпь пoдхoдит бeЛьп; IiDс].i хо'lЧ l}ьI мoжeте исllоJlьзoвaть ( ) ' кoтo" . ;ой. .цля yстal{овкl' ,l'еlryцIeгoцв€ т a мьт l{спojп,3yсм мсl'oд setсo]or : :il в качс'сТDcuарамcтрotJ ttриIlимaет цвет в сt]стeмc R(]B' ( ) yстаllaвлIaвaст нoвьlil 1'скуrций цвс'I, a это llривoдI,lт к пoтеPe :тoд sеEсolor ( ) где. .:iьI,lтl'тцсгo3вaцсния' ЕсJlи IraМ IIри.цется вьIзвaт') мс-гoд сlеаrsсreеn .1\дЬв пРorРaммс, r.o B PeзyxЬТa1.емьI потеP'ем текуIций цвет. чт()бьt э-ioгo !Iе г l е Р в I ' l Mд c Л о v с о \ p а | l я е ! l e к } ц и й ц в е l в п c P e v e н н y ю с o 1 o , ^ пyляцп'i с цвс.'гaмивoсстalraвливаем э'r.oзllaчепI,Iе'B итoгс rсРи l.скyщеIo цветa пе пpoисхoдит'
..drawline (Wldth, 0, 0,нeight ) ; ]]eсь мы llеpвьIм делoм yстaEaвЛиваем дp)тoй пвет яля линии (кpaспьIй). зaтем .станaвЛивaсм тиrr лиI]ии' Tип DoттЕD oзIiaчaет' чтo ли!rия бyдет IilaрихrryнктI{Р. :roй' .Д;rлеe с oмoщьlo метoдa drat'L lne ( ) Рисyei{ лиInrlo из лРaвo1'o веpxlrеIo )т. Iа в лeвьIй нш(ний,
135
tб Ф (J
s os т
Ф J) tб
@ д.с"'*. ."p.*1, d r a w l 1 n е s ( 9 r )' в метoд paln. l ] вa I'(етoда oчистки экPaнa. иliaЧе вы t{е yвидите ЛиIrий' скolшиnиpyйтс rr зaгryститe Bы Polpaммy. )ъидитe дйспJ|е\4 c /\'Bуgя пepеIrрeцивaro. щимися лиIlиями i{а нeм' кaк нa PисyIr(е сгIpaвa' Ifu нкpeтlrый вид штриxпylrк. 'гlrPнoЙ линии 3aвисит oт м06илъя()го РеaЛизaцИ'|
6oй пa6opЦвeтныхпикселoв и liPoпyскoв' и,гaк, с лиtlияi'и
yсrlеДlнo Pа.
зo6рались' TеxePь дaвaйте lloeксtreРимeятиPyеl(
1з6
с гIPя"
.]o6авь1c в кoJ к.'a((а чтDР' .'
rnЕ
inЕ
,
с,1едyющиЙ мfloд:
"s
ЕоidЬ|=dёEяё]бьЕ
s о
g' т
s
l 1.
Width=getwidth
Ф
() ;
"1
E A)
s Ф
9r.drawReсt ( 0, 0'WldtЬ/ 2'НеighЕ / 2 ),
o s o o\
g . s e t с о l o r (0 l 0 ' 2 5 5 ) ;
Ф -.1
g . s e t s t r o k e s ! У 1 e ( G r a p h i с s .s o l , I D ) ,
Ф
g . s e t с o l o r (0 , 0 , 0 ) ; g. setstrokеsty1e
(Graph'сs. DoттЕD) ;
g . f i 1 1 R e с t ( W i d L h / 2, н e i g h r / 2 , W i d t h , н e i g h t ) g . s e Е с о 1 o r( 2 5 5 , 0 , 0 ) ' v.ё /i-аnь..s'soLIDl; g. drawReсt (!,Jidth/2, 0 , Widch,Iteight /2 ) ; g.sеLсоlor(сolor); зo всc^rкoдe лишь oди}IlrBlra*oмый мeтoд drawReсЕ ( ). olr PисyеT кoнтyР llPя' '1o)тo,п,ниr€aк'rивIrьIмцвeтoм.Bi€ q eстве пaPaметРoвori пРrrяимaе,lкooРд]rнaть' :евolo веPхнeгo и npавoго Irlr'.rrегoyг,ов пpямo)тoЛьника. \Iетoд f i L ]Rесt ( ) нallty)кезrraкol{'как вы IIoмIiIrте.oн Pисy€ т гIpямoyгoльIiик' ll'lитьiЙ
-:пем с,yчae пoследним бьIл lrapисoвaтr сплo1IIнoй кoнтyР пPямoyгoльвикa' - oн и пеPеРисoва-q пPедыдyвrиe oбъекты. .ерьдaвайl.e PaссмoтPим Pисoвaние oкPy]i{Eoстей, эллиIIсoв и сеItтoPoв. tla са. l|,]еле. oI{PPirнoсти] э/L!иIiсьI и сeктopьI PисFoтся с пol{oщью oдвoгo и тoгo )кe : , o д a к J l а с с aG r а p h i с s . э т o м e т o д d l a w A r с ( ) ,
s
О т
s "1
aur Y даннЬlЙ
метoд пpи,iиr!tа. eт шесть паpaMeтРoв' пеPвьlе дBа пaPaметРa _ кooРдинaтьI х и Y xевoro вeРхIrегo }тJlа пPямoyгoльникa' в кoтoPьIи 6yдет вписaн эллипс, Слeдyю. щие двa пaPаметPа - I]IиPинa и вьIсo'i.aэллипсa. чтo6ьI ЕaPисoватЬ oкPyжIroстьt вaм Iryжнo всeгo Jlишь задaтъ oдинaкoвьlе вЬlсoтy и luиPиlly.
я)
s Ф
s o\ d Ф -l
Ф
j
lll !aм и3вeстнa кooPдиI{ата цeнтрa oкPyясroсти и)Iи эJIJIиIIсaI тo вЬIчис]Iить два ]DвьIх llapaметРa мс'r.oд2r otlенЬ ]IPoстo. oтнимите oт кooРдинaтьi х цeнтРa rloлo. : .tl! [IиpиI{ьll a oT кooPдиllaтьI Y цеI,ITPaпoЛoвиlrf вьIсoтьI]и вьI llo"т}читe кooPди" :гЬl Лeвoгo веPх[тегo }тлa пpямo}'r.o,IьIrикalв кoтoрьIй б}д€ T вIlисан э,1.липс' iтaвпI'Iеся двa llaPaмeтPa метoда drawArс { ) oпPедеJIяют нaчaлъцьtй угoЛ, с кo. ]РоIo rrРкIlo рI'Iсoвaтьд}тIt и смещeI.ие в гpaдусlч oтнoсительlio нaчa-цьнolo угna.
Ф скoмпилrrр}йTе и загryстIlтe ..1 пpoгpaммy Baш диспЛей при. метвид' как Iia Рисylrкеслевa. 0) v }Iа экpalrе изoбРаяtеяьI: эЛ. липс' ol{PРкIioсть' э"rЛrrnсa и зaJIитьIи
s T
чеTвеPть сектoP'
s d
o
^
:еr,сPЬдaвайтepaссмoтPим нeпoсPедствeннoкoд. ] . s e t , с o l o r ( 0/ 0 , 0 ) ; , , seс sЕroкesLУ] е Grаphlсs ' soLID ) , -'drar'Arс(0.0,Wldlh.]leighl, 0, з60)i JдeсьмЬIyстaнaвЛивaемчеPный цвет и (rlлotltнoйтип Jlинии, a зaтeм Pисyем эл" экРaна' :rlllс' вьlсoTаи пIиРиtlaкoтoPoгo сoвпaдaroтс вЬIсoтoйи UIЙPI,tпoй ].sеtсolor (0, 0, 255); . ' .d r a w A r с( 5 , 5 , W i d Е h - 1 0 , l ] е l g r h- t1 0 ' 0 , 9 0 ) ; !t]'адaвливaеп,tсипий qвет Й Pисyeм чeтвертЬ кoнт}?a э)Ulиlrсa' чтoбы Ittllия rrc :iакJlадьIва,'raсь rra rlpедьIд}rциЙэ]Iлипс' нeмнoгo изменяeм кoopдинaтьr' :. setcolor (255, 0, 0); : ' d r a w A r с( 2 0 , 20 , W i d t h - 4 0 ,W i d t h - 4 0 , 0 , з 6 0 ) ; \ 3десЬ мьI Рисуcм tсPaсry'io oкpy) {oсть. в кaчествe Paдиyсa вы6ирa€м веxичину чeмrroгo меIrьrlry1o'чeм шиPиirа экpaна. этo дает гаPантиIo' чтo olсp)Dкнoс,fьllo. честится Еa экPaи. ] . s е E с o 1 o r( 1 0 0 , 1 0 0 , 1 0 0 ) ; ].fiL1Aтс(40,
4 О , W i d t h - 8 0 , ] , ] e i q h t - 8 0 ,0 , 2 0 0 ) ;
11нal.oнеlr'рисyем залитый сектoP серoro цветa.
141
J) tб a0 (J
s
(.)
пoэксIIеpипIеIiтиp}йте с пaPaметpal{и метoдoв drawArсs () и fil1Arсs () ' чтo. бьi JryЧпе пolrять пPивциIl их Pa6oтьI' Cpеди стarцapтвьIх метoдoD Рисoвalrия к,aсса Grаphiсs есть двa дoстa'roчIro интеpесЕьiх метoдaj пoзвoляющиe вап( рисoвaть Ilpямoyтoльl{ики с закpyг,енньiми кoнцaми' Этo метoдн drawRoundReсt ( ) п fi1lRoundReсt t ). кaк вьI, Iraвepнoе, дoгадалr-rсь' меToд d.awRoundReсt ( ) pис1ет (oнтTP фиl.t?ьI, a метoд f i 1]RoundRес r- ( ) Pисyе,l,фигyРy] залитyю цветoм' aктивIrым в дaвньlй п{oмеIr1..
s (o t-б т
BЬ|coтa
Чl э'' гIpиIrиMаloт "".oлo' одинакoвьIе пaPаметPьI' их пIeсть| кooРдинaтъI xи Yлевo. гo веpхнeгo 'тлa llpяп,lo}тoJlь. Еикai llrlrpина и вьIсoтa пPямo}тoЛЬникat InиPиIra и BьIсo'.a 3aкPyглеIrия yглoв пPямoy.
Шиoин
B 06щrм, oт pисoвaния стalг дaPт}IьIх пPямoyгoльIrиI.oв эти метoдЬI oтIичaются IIaJIи. чием /Iвyх дol1oлнитeЛьI{ьIx naPаметpoвl ?t в oстaJrьнoм
. 1 е (ч v L | P и t у е v . и н и й J i ! 1 иг ы й п P я м o } г o Л ь н и } (r J Д r P } r л e н r . ь | v иt l n j м и ' 3 д e ( ь , : )тличиe oт прrдъIд''rцей фигуpь'' Ilпiplrнa и высoTa зaкP)тленIrя yгЛoв не сoвпaдa, т, УЙы 6y,{'т зaкРJтJtя Й тPaeктopии. 'фиryp vьI нe Pа((vотpeли тoль,to IPе!тoлЬниltи' дe.Io в тoм' ч гo для Pи! oвaния ( ) . oя Pисyет зали. Jе\тoльникoв llpедyсмoтpеlr IиIIIь oдин метoд fi L]тriangLе :]й тpе}тoльник. A чтo делaть, еОIIr нам }гРxeв тoJIькo кoнтyР тPеyгoJIьпикa? Пpи' ::rся pисовaть вPyчryro' вeдь кolrтуp тPе}тoЛь Ptr лиlrииj сo. ::rrrlеIlньlе вмесaе'
g.drawline(х1,у1,х2,y2) ; g.drawlinё (х2,y2,хз,yз ) i g . d т a ! ' L i n e( x з , y з , х 1 , y 1 ) ' ) кaк видитс' метoд приIrиNIitст ц€ л ьIх семь l1apnмс,гРoвi o6ъект кЛnссa Graphiсs. oтве'raющirй зa pисoвaнЙe, и кooPдипатьl верцtин тPе}тo,ьrtикn. Кoд сaмoro метoдa rrpедеxьно пPoст' МьI lloпaРнo сoединяeM Линиями )кaзaпIi Tе!срь нaпишем метoд. вьIвoдящий нa дисllлeй телефoна кoнтyP тPеyIoльIrиI€ r зaпитьIЙ тРеyгojlьяик. рrivate
void
dтa!'TIiang]еs int
144
(Graphiсs
сo1ol=g.qеEсоLor() ;
q) t
d r a w T r i a n g t е ( 9 r 1, 0 , 1 0 , 2 0 0 , 6 0 , 8 0 , 9 0 ) ;
s
О
g . s e t с o ] o r {2 з , з 4 , 5 8 ) ; g . f 1 1 1 т r i a n g 1 e ( 1 0 , 1 5 0 , 1 з 0 . 1 6 0 , 2 0 0 , 2 5 0)
@
9) т
s o
qr.setCo1or(сo1oI);
"1
Ф
g s вьвoB метoдa @ д.о**" drarrтrianq]ёs () в мсToд paint O.
Ф О
s
и зaгryститe o\ скoмпилирyйтс пPoIPaмщa t{a экPalreтслeфo. нa rloявятся двa тPе}тoЛьllи. (a, кaк нa Pисylrкe слeвa. этo и есть Peзyльтат Paбoты нarдe.
Ф -l
qt
я дyмaro, чтo с выведенЙeм тPe}тo]lьllикoв l,ra экpaн y вaс пPoблем вoзникв}ть нe дoлк. rrot пoэтoмy втy темy мoяGro считaть зaвеplIIеннoй' с PисoвaЕием o6ъект0в мьI Pa3o6Pa]lись' теIIePь сaмoе вPемя РассмoтPeть Pa6oтy с
145
j
F б (J
s o-
Pисoвaниe тeкcтa дoстaтoчнo чaстo встpсчaются сдyчaиt коrдa вaм lrеoбхoдимo пaлисaть lraкoй бо текс'r. нa диспЛес тeлефoнa, R этoм Paзделe мьI Рaссмoтpим' кaк этo сдс'лi дЛя низко} РoвIlевoro въIвoдатетiста IIa эr(Paя ! J2lv E пРeдусltoтРеiro нескo,ьIro тoдoв' пРиIrад2!окaпIих
,'(иII'1I' с'Iotr|lЛцЬlo ollеPатo()lсt]a Пзo6Р.'жcl' oгp.'Р,l L, t I P , l \ { o у Ioxь пlrчяDaк)lцlrii l l р l t ' } я з к и и 'Ia l'пк' сгo тoчtl'' эr'I,' patrlетPьI' oxlк,ьIвaюIIlI{с
PьIе б}r(въl имеloт чaсти' pас ни]{(е oсIioввoi л!Iнии, нaIIРимеP. 6yквa Ir pyсскoгo alфавитa или 6укв; Q aнт'rийсI(oro aIфaвитa'
47
F б с)
s s ,; F б т
raк Boт! eс]lи вьI }кaза,Jlи flaРaметP
BASЕL]NЕ'
то вьlpаяIrивa}Iие
6yдeт
дить пo oсIIoввoй Лr.rнии,Если ]кe }казая пapaметp вoTтol,l, тo текст 6yдeт неIr пo сaмoй ни'tlrей части стрoки. нy вoт и paзo6РаЛись с тoЧ(oй IIPивязки и вьIPaвIxrвaIr'eм тeкстa' Tепrpь Paссмoтpиi,Iслeд}ющиймeтoд _ drarjsubsLring ( ) . oli oтлlrчaeтся oт метoдa drawst.ing ( ) лишь 1.ем' чтo вывoдит нe всIo стpoкуl JIиrnЬ ее чaстЬ. Мстoд drawsuЬstrlng () пPиtlимaет те яrе паРа.!l€ т РьI lIЛIoс дonoлнI,rтeльI{ых: IioмеP сиl{вoла' с кoтoPolo начIrerся вывoд пoдстрoки' и чествo вывoдимьlх сипtDoлoв. Метoд drawсhar ( ) вывoдит на экpaц oдин
Метoд тIpиIrимaет всeгo тРи Пapaмстpa: кooPl{инaтьI x и Y тoчки пPивязкIr и .
n Фh'аIo' чтo теopии y}кe достaтoчIro. пoPa пpимеrrить зtJaвия яa
Coздaвaть lroвый пPoект мы нe 6yдeмt a Липlьдопoлним llрolPaп{мy из
д06авьтс в клaсс l{IDPсanvas след}roщийMетoд. privаtе
void drawTex! (Graphiсs g)1
j nt
ндi
dъt
=d6iнёi
dьts
/ l .
g . d r a w s t r i n g ( < с т p o к а > , 2 0 , 20 ' Graрhiсs . LEFт | Graphiсs. Boттo}1); g.dra!'string(<стpoкa>, 60, 20, Graphiсs.LЕЕт ] Graphlсs . вAsEI!INЕ ) ; g. dlawsubstring (, 1, 4, 6a, 9О, Giaphiсs.LE!,т GIaphiсs. вASЕLтNЕ); g.drawсhar(,A., widLh/2, GIaрhiсs. вoтTol4);
144
I1eighL/2, Grарhiсs . iJсЕNтЕR l
-т]
o дouu,-. вызoвдaнI{or.os
меToдa в Mетoдe palnс Лe oчисткIr экPalra.
t J пoс-
a) т
скoмпшЙPyйте и зarryстиTе s Ф пPогPaммy. экрaн дon)кен -t лP'111'1тЬ B|1I\, кaк нa pисFlке
нa дисплес вывeденьr двe стpol{и' oдIra пoдстpoxa и oдиrrсимвoл' paспoлoхеI{яЬIи в центPe экp!rнa'
(o ъn"'ouu," '*..' "'Pon" Y кooPдинaтy oдидaкoвyю тoчIси пРIrвязки' rio PaзIiьIе BьIPaвнивaIrияl пaРaметPьl кaк вьI мo)кeте вllпoэтoмy' слeвa' втoPaя pис}тrкe деть lra стpoкa riaxoдится Ira несIолькo пиксeЛoв Ilи)I€.
149
-0 tб Ф O
s
о.
s т
(o д tт
PaссмolPим
след)'Ioщyю стPoьT кoдa,
g. drаiisubstrinE (, t, crаphlсs .вAsЕLlNЕ ) ;
4,6о,9|,
Graрhiсs-LЕFт
Здесь мьI DЬlвoдип' пoдстpoкy тpoк] сoдеРжaщ}roс' в стрoт!е оrpoка, BтoРoй пaР} ( ) yкaзьIвает.с кaкoro симвoлa сxедyeт п{eтPме roдa drat{srLЬstring вolr noдстpoки. fIoмEите' в прoгРаммиРoвaнии счeт }Iaчиrraeтся с I{yля, xoэтoмv втopoй сиIвoJI бyдст ип'eть индскс 1. Bтopoй пaРaм€ т p ylra3ьIвaет' ltаltoс числo симвoлoв lry)кнo выве€ т и па экPaн, oстaqьньlе паРaметpЬI пoЛнoстьIo сoвпaдaiот с nаPaпtетPaми мстoдa d].aпstring ( ) . и мьl IIe 6yдем их o6суждать' ' ' | l r d Е h /2 , q.drawсhаr(,A,, Grraphiсs. вoTTol,f ) ;
|Lelg]nt/2, Graрhiсs
. IjCENтЕR
этa сTPoRa кoдa DьIDoдитбytrвyA в цс1IтР экPaIrа, o6Рaт,Iте внима1I вь,деJIяе,l.сяoдиIIoчI{ьIми кaвъlчI€ м иt a нe двoйньIми, кaк стРoка. МIrе каJкется' чтo с DьIвeдeниeм стPoк l]ли симrroЛoв нa экРarr y вaс Re дoЛnшo вoзtrикIjtть зaтpyд. flelrий' BеДь всe. чтo oт вaс тPе6yr,гся, _ этo 3адaть стpокy иЛи сиMвoJI' oпPедeлить кooРдI{нaтъl тoчки пPивязft и. a'гаюкс oпpедeЛи'rъ fiapaп{e'r.PЬI пPив,Iзки' глaвI,IьIйнсдoстaтoк симвoлoв, кo'гoPl,Iе !'ьt DьIDoди]lиlra aкPaн. 3aIсцючаJIсяв тoмt чтo oпI4 всc вьlгл'дсJIи aбсoлloтпo oдиt{акoвot ч'r.oнс oчelrь.'r.oкPасивo' чт06ъl кaк. тo pa3l{oобРазитЬ r]ьIвo/llll!{ЬIес'IмвoльI. припtеняIoтся Pa3xllчньIе llIPифты. Их paссмoтрепrrelr мьI и зaймeмся B сJleдyюцeм PaзДeIе'
A т€ f iсPь давaйтe нallидIeм мeтoдr кoтoРьIй 6yдет вьlвoдtrтЬ стPoки ми шPифтaми. кoд мe'r.ollа пpедстaыlеIr нФкei private
void
dra!'Еonts (Grарhiсs
g){
g . s e t F o n E ( Е o n t . g e E Е o n E( F o n t . P A с E - s Y s т E ] v ]О , ,0))' g. drawsЕring (<систeмт,rый>, 2 0 ,20, GraphiсЕ . LEЕт ] Graphiсs.вoттo}{) i g. set,Еont / Еont. geLFonE (Еont' ЕAсЕ_l,]oNosPAсЕ,0, 0 j J ; g.drawsЕring(<PaвношиpинI]oй>t20,40'Graphiсs.LEFт Graphiсs. Boттo}4) ; g. seЕЕonЕ {Font. gеEFont (Еont. FAсE_PRoPoRт]oNAL, 0, 0 ) ) g. dra\'string (<]трoпoрциoнaльвый>, 2 0 , 60, Graрhiсs . LЕFт | Graphlсs ' вoттo}4) i q. sеtFonЕ {Font.getЕоnt (0, Font . STYLЕ_РLAтN,0 ) ) ; g. drawstrinq (,2 0 , 100 , Graрhiсs. LЕFт Graphiсs. вoTToI{) ;
g. sеtЕonЕ ( Fon!. getF'ont ( 0, 0, Font. s]zЕ_МED]Ul4)) i g. drawstring (<сpeДнL1Й>,20 '20a 'Gтaphics. LEFт Grаphiсg. вoтTol4); g. seЕFоn! (Font. geЕFonЕ ( 0, 0, l'oпt. sIZв_LARGE) )' g. drawstтing (<Бoльшoй>, 20, 220, Graрhiсs. I,ЕFт Graphiсs 'вoттoМ) ; g . s e L F o n Еl Е o n t . g e E Е o n !( 0 , 0 , Е o n с . s т z Е _ s M A L L ) ; g. draws!ring (,20 ,240 ,Gtaрhiсв. LEFт | Graphiсs. вoттoM) ; g . s е Е Е o n c ( Е o n Е ' g e Е D e f a u l t Е o n t( ) ) ; g. drawsLring (<]дpиФтпo yмoлчa!rис'>.2 0, 2 8 0' Grарhics . вoттo!.l) ; Grаphiсs.I,ЕFт
15з
д tб ф
O д.u*'**.* *-. *."
o (J
тодaэ меToд рa1nЕ l] l a зaтеlr сItoмIlиxlpyите и зaflyсTите
s
нa экPаiIе xoявятся lraдписIr, сoздаIIIrыс с испoлъзoвalrисм PaзличньIх пapаме.гРoвl кalt Ira РисуяI(e спPавa'
g . drawсhar { , с , , з 0 , 3 0 , Graphi..s . ЕсENтЕR Grаphiс s . BoттoM ) ;
!
s
g..lrawсhar (, т,, 30, 5O.Graph1св. нCЕNTER Graphiсs' вoттol.{); q. dlawсhar (, р', з 0, 7 0, GraPhiсs. IiCENтERIGтaрhlсs. вoттoM) ; g. dIawсhar (, o,, з O..9O,GIaрhiсs. нсЕNтER Graphiсs. Boттo1"])' q. drаfu€ h ar ( ,к, , з O, 1]'0 , Graрhiсs. ijсЕNтERlGrаphiсs. вoттoш) ' g. drаfi€ h ar
( , a . , з 0 , 1з O, Graрhiсs . ЕсENтЕR Graphiсs . BoттO1'{ );
)
o ,o""'"'" Dьтзoв метoдa
I р
o !(
метoдe в dra!'Еon!s{) paint{) вьIзoв яa v e r t i с а 1 s t r i n g ( ).
qaстo i-:чегo слo)кнolo.вь1 пPoстo пoмeщaeте'IРкяьlй кoд вiJ)тpь циклa. oчerrь вPeмя' для этo. rrч пoнaдo6итсягlpиoстaяoвитьPa6oтy fioтoкa яa oпPeдeленнoe кoли. пPини[naет : ;lспoльзyeтсямeroд 61еep ( ) , кoтoPый в кaчeствепaPaмeтPa (зaсн)ть,. вьl хoтите' нaпpипlеp! i i:твo !{иJUrисery.rrд' яa кoтoPoе rroтoк дojlЯ(eн :- 'fЬl цикЛ пoвтoPяJIся с задеPxкofl в lloJlсeкyндьr' рub1iс void run()
t
while{working){
Еry( th'еad'sleеp(500); } с a l с h ( Е x с e p lto n e ) ( ) ] ]:*i вид!rте, все, чтo lri'i{rtro' _ этo дo6aвить зaдеPхI'T в 50{) миллЙсекytiд :.xr в дP)тoм п[есте) цЙкJIa'
flвигaeм oбъeкт г|oэкpaHy тепеpь нaсrа,!o врeмя Еaписaтъ небoльпI)'lo пpolpaммy' trзllсняю!ryro п ' P а ф и ч с ( к о | { ' o 6 ь е к т а . и , и . г l P o o r еl o u o P я . P e а - l и з y ю ! ! a , н c с | o ж н }ю J н и м а ц l { l o снaчalla дaвaйтc Рaссмoтpим пpинцип действия 6yдyцeй пPoгРаммьI. Pисов см' (aк выj lraвeРнoe' дolaдались' 6yдeт заlrиNlа1,Ьсяo6ъeкт клaсса Canvas. B се бyдeт сoдеPхaться метoд рaint () ' кoтopllй бyдет prrсoвaть гpафическtrй ект. Тaк)ке бyдет метoд тun ( ) ' кoтoPый 6yдет изменять lroopдинaгы o6ъelr1.a PaвньIе гIРoA(Оl(yшlt вpемeни. B o6цeм. все пPoстo - метoд run() изMсняет кooPдиIrатьl o6ъек,ra, а м раlnt () Рисyет oбъект' сoгxaснo IroвьIм кoopдинaтам.
O
"o"uuo'" нa3oви'ге
"'un, гIрoеItт.
,o",,,o сгo
simp|eAnimвteProjeсt' а тлав. fiьIй кЛaсс nPиЛoжсI-lиянa3o. ви,rеAnimаteм|Dlet,
.
oткPoйте Pедaктop Блoкнoт и сoхPанитe пyстoЙ дoкyмelil' uoд I An|mаt€ м |D|6t.lavа в кa,r.аJlor.с src ЛPoеIrтa'кoД Iс'IассaAn|mаtel'|tD|etD IIpивoдЙть нc бyдсм,'гаIt как oI{ пРaктичeски ttичcм нс o'лJlичacтся oт !u{ 1lых IUlассoв' РaссмoтPеннъIx в пpедьIдyщeй чaс'ги. Eсли y вaс вoзIrI{кп}т
./ord сomrпand-cсtion (сomand :]bLiс : : :s Р 1 а y а b 1 e ] (
сoпnnаid, Disрlayab]е
E E
( с o f i m a n d = = C l , п \ ] D _ Е х 11t )
if
q)
сhrеad.iпterrupL:(); Al
ptibLiс !Оid
па..l4.D'.
Ф,[] о'ё-'
paint(Grарhiсs
g)
,q,
,,
{
с],еarsсrеen (g) ' '.1
!AI .l00,v'20,20,0')oО
l)Lrtjriс void
j
run ( ) {
'",ih11е(wolking){ Y=Y+1; rерa1nt ( );
rry{ thread.slеeр(200); } са.сh (Еxсeрt lon
e)1}
161
Б lФ
ni
i v:t.
1r-l d
.
-,..
inr
н.iоьts=пФЕнai.ъ|
int
!'idth=qеtWidth
q Ф
int
сo]or-q. qeЕсoloI () ;
х
g . s e t с o ] o r { 2 5 5 , 2 5 5 , 2 5 5 )i
\o
s
o
g.fi1lReсt(0,
l-F (J б т
с59,
i 1.
();
0,Widch. нeighЕ)i
E r .s e Е C o ] o l ( с o 1 o r ) ; l l AтellePь Paссмoтpим' что y нaс xojlyчилoсь. p u b ] i с с L а s s l , I ] D P с а n v ё se \ . e n o s с a n v a s j 1 р - e m е n Е s кaIс видите, нaш кЛaссPaсrnиPлетI0]aсссаnvas| a тaкжe сoдeP)rит 6л0к 06 кIr кoмaндcommandAсtion() и Метoдrun( ). B пPoдапяoм к,aссe нaNIпo[raдo6'тсячeтьIPегЛo6алЬныeueРeмrнньIе.пеp lraя thxеad. этo нarшпoтol(t6yлeвarreРeмeннaяworking сoдrРlrит и o тoм' дo'п)кeЕ Jlи 'iЦ[l!{ыЙ пoтoк вьnlo,Iнятьсяl
цедoчисЛeян:iя
IrеDеме}п{a' Y -
к}rцaя кoopдиlraтаY !{аII]егoo6ъeктa' чтo тaкoе сI4ND-Eхit' я думalo, вЬ! уx(e Ли' этo кoмaндa вьIхoдa из пpиJro'(c}'ия' leпеpь пoсмoтри!I' ч'гo прoисхoдит кollстpyктoрe' для l{aчarтa}IъIвызывaeм кol{стP},lстop'Io} oлчaпиIo- sLLрer () ' тем дoбaвЛяei,{кoмaндy BьIхoдa' yстalraвливaем 6!ок o6Pa6oтки кoмa д. thrеаd
Е h r e a d .s t a r t ( ) ; A этa с]poкa зarryскaеттoJlЬкoitтo сo3дaнIrьIйпoтoк нa вьIпoлнениe, нy ]}oт, с кoнстPyrтoPoм Paзoбрaqись, нI,rtrеIo сJlo,tt]oгo' TьпеPь IIеPейдeп! к !'{ ( ). кoд кoтopoгo ду painЕ ( ). B нем вы видите въI3oв метoдa с]еarsстeen ( ) . (oтopыit Pисyeт залитFo зrraкoп!I{з lrpoillлoй Чaсти, a тaк,се меToд fi1rArс рР(Iroсть' так кaк мы не )кaзьIвaеi( цветj тo oкp)*lroсть 6yдeт liaрIrсoвaтrа пo yмoлчaнию' сl(oPее всeгo чеpl{ъIм.
162
..
..Ь|c
{7О0'у,2о, 20,0,t60) ;
ъ'1
i.:ъте, чтo в кaчeстве l(ooPдi{Iraты Y сToит rre чr,rсЛo. a пeремеl{riая. To есть, eс. . 'q изме!iим знaчeЕие пepеменнoй. п(eФ,orroлo)rrение o6ъeктa тaкже nзмеIlится' ':
эra 6ыЛaяашaпервая IrРorPaмNIa'испoлъ3yк]щaя аIrимациio. У 'reе е IIедoсl.aai{oвj a имeEнo: кPy,кoк двиIается тoлЬкo tlo веPтикaп,т] IIРи дoстюr€Ir'fli нn'{нeй rРaницы iэкРaнa oн )tloдl{т из oбласTи видип!oсти. сeйчас мь1 дoРa6oтaем тIРoгРaмl{y так' чтo пaIII
s
irlt
Ё -0 tт
G)
X;
"'"
,,.p"'""'-" с,,o,'
]rPаljи rЬ 1,cкyпlис (oopдинaтьI х и Y ш а P и к a . П o N t н и т с 'в я и х 6уДуT xPани'rься кooP'iu.пaтьI леl]oгo всPxнсгo углa rтр,lмoу. гoльllика (g напIcм сJryqaе квaдPal'a)t в кoтоPЬlй вписalla
кoда мы д06авили инициfulизациIo пеpемeEньlхj тo яия. Мы'rar('(e lloмещaем !пapик в
165
э t-
Зaметьте. чтo l.Iнициajизaция дoлхIrа бьIть пpoведевадo зaгryскaпoтoкa' пo ьT пoтoк исIloльзyеT эти псPeмеЕньIе. Метoд рaint ( ) пpактически не и3мeнять. Пpoстo нPl{нo yстaEoвить пepемеtlllые х и Y в lraчестве l.ooРдиIrат х Y нaпIегo lltаpиttа' a тaкжe пepеменIrьIе arсWidth и arсIlеighс в кaчестве IlьI и вьIсo'l.ьt шaPикa.
B сaмoм нaч,rлeциклa Whi1e ( ) t } ttрoвcриl,'' Iie вьпoдит ли кooРдинirтa x 3a п деЛьtдoпyстимoй oблaсти, i f ( x >( s с r e e n w i d t h a r с W i d t h ) ) { dx=-dx; ) е r s е i f ( Х < 0 ){ dx=-dX; ] Если кoopдинaта х шаpикa вьiпrлaзa пPедел' l{ы прoстo меIlлем зIIaквe]lи ropизollтlltlьEoго и iIIaPик вЬtlпеI
пРиРaщенил' To есть' есJlи пpиРaщение 6ьIлo xo]l за пРaвiar гРaliицу oбЛaсти. мьI дoпyсr'имой делаеM
oтpицатejlьньlм, и шapиl. }raчrrlnет двиl.aт!ся вЛeвo' rlPoце }IarlpавIсяиe двиItеi{ия пIapi.rкa.
s е t с o l o r ( 2 5 5 , 2 5 5 , 2 5 5 ); q.fiL1ReсL(0,
0, geЕWidth(), getl{еight());
169
g . f i 1 1 A I с ( 1 0 0 ,Y , 2 0 , 2 0 ' 0 ' з 6 a ) r
з F Ф
flushcraрhiсs ();
s
x ь t-. () б т
как видите, в сaмoм яaчале п{eтoдarun ( ) мы пoлvЧaеll oбъeк'r IспассaGIaDhiс затeм в тeле цикJtа Whi]e ( ) t } мы сяaчala oчищаем экD:ul. а rloтoм oпсрaциIo Pисoвalrия за"rlитoйoкPРкнoсти. пoс,е этoтo мъI oтo6pа0кaeпfсoде
МoeбyфеPaнa экРан с пoмoщьIoвьlзoвaметoдa flushcraрhiсs () ' Пoтoм мы лиrтивa€ м 3gaчeниепepемelx{oЙ'oтвeчarощeЙза веpтикaльrryюкooрдияary нoсти. и нaчинaем
"o еще одив вoзмo)t(яьIй тавЛeн вaРиalrт распoлo)ItениЯ кaд.
172
*х
з,..ас юдРьI paслoлorкеЕьl пPямo)тoЛьIiъIм r)в кaдрoв тaктre t1oнятeli из Рис}'rrкa-
6лotсoм' Пpинrrип
pасстaнoвки
иE-
О Ф
s( -l
, To eсть нелъ. Е :Е{o зaмeти'rь. чтo 6л0к кaдPoв o6язaте,ьlro дoлxel{ 6ьlть пoлIrь oстaliется блoкa яce'iка r(aк oдIra r arсемъ кадPoB Рaс[oлo)кить 6Лoк0}' зхз, тaк .
Plспoль3o. .-аI-fгмo}кет сoстoятЬ всеrо из oдIloгo кадPa. Taxие сl1paйты мo,кнo Iryxнo TellеPь анимaцЙIo' l..l. xolдa Bьi хoтитe сoздать o6ъект, !rе исnoльз)Фщий l l o в oPaчи ( г l P а й ] o в . v o ж е г с в ь l : ' - , ч o т p е | ь л а к o й B o п р o . ' l { а кт P a н с ф o Р м a ц и я oгo6pахcние 3еРкаjьнoе вoJмo)к|to *_- *,-rЬ" * ю' lх0; 270 гPaдvсoв' такл{е i::)a
тeaеРь xPедс'r.aвьтс ' чтo нaм ну)1с{oпoвеPяyть изoбpа)l(e. ние нa 90 гpадусoвпPoтивца. сoвoйстPелки'с сaмимпoвo. Poтoм пPo6лем Iiе вoзflиIq{eт' вo дЛя вaЧaja I{РкгIo o Pеде. лить' вoкPyг чсгo !'ьI будем вPaщaть I,IarIIеизoбP&кelrи€' итaк, мъI пoдoluЛ'l к пoнятик) 6a.!oвoгo llикселa. этo и есть пиксеJI, oтнoситеJlЬl,o кo'гoPФ гo 6yдgг пPortсхoдить TРaнс. фoPмaцlrя изoбPaксIrия.
дorryстим,y яarЦeгoизo6pa. )кeliия olpедeJlеrr 6aзoDыЙ пиI(сел с A!екoтopьIмr' кooРди-
lB tp.o.ruuo'",
.'o
u"'
пPoткIryли бaзoвый пиxсел иlЛoй и врaщaeтеизoбpa*eнIrе' мк
lra Рис}тfic
с-левa.
17з
t.. Ф
\o Ф
s Ё t(J б т
Bсе oпеpaции тРaнсфopмациЙ Bы Mo'€те
oс}!{еств?rяются
вpaщaть l,rзo6pм{ения
oт}IoситeЛьIro 6aзoвolo
пиiIселL
Еa лiо6oй yroл, ItPатIrьIй 90 гРaдyсaм'
B o6щем. riиЧегo сЛo)'!Iioгo' снaqaлaзы oпPедeляете 6аэoвый пиксел' a зaтеir пpo. и l в o д и г е н е 0 6 \ о д и V Ч o o п e p j д и ю г P a н (ф o P v а ц и и ' A т e l l с p ь PассtloтP'', -* P* alизyeтся alrиMaц,Iя в сflpaйтахj сoстoящих из нескojlьких кaдРoв' здeсь кЛroче. вьIм пoнятireм яLliяется oчeредь кадpoв. oчePедь кaдpoв - мaссив, сoстo'щий из иядeксoв кадpoв спрaйтa' указьIвaroщIrй. в кal.oй rloсЛeдoвате,'lьнoсти дол]кньI вoспpoи3вoдIrться кaдpы.
= т m a g e . с I e а t е т m a g e (< / l m a g е ' p n g > ) ; = nеw spxite(imase't0,15);
:' ..:ый кoд зaIPyзит изо6P&l(eEtrе в o6ъeкт i]nagе. a зaTем сoздaст сnPaйт с кад. qтo iпиРинa и вьIсoтa l - :! шиpивoй 10 и вЬIсoтoй l5 тoчек. o6paтите внимalrие, --.:r,roлхI1ьr 6ьIть укa3aiiы вepяo, иЕaче пporPaммa пpoстo }rе сNIoхет пoделить ,:. .:?axеIrис нa I(адрьl. '::е сoздаllил спPайтa Еpl(ro ollРеделить 6aзoвьrй гIиксел' дЛя этогo испoлl,зy() клaссasрriEe, . . \ ! е т o дd e f i n e R e f e I e n с e Р 1 x e L .:e ' def rnеRefеr er сePiхe.L 2, -
з ';
j]iая стPoкa кoдayкa3ьIвaет, чТo lIиI(сел с коopдинaтoй (2'3)являс1.ся бaзoDьIм. .]:rти'гe
Ес'ти вам нркяo 6yдетyзпn'rъкoopдипa'r.ьI6aзoвoгo lrиJrселав ()6щсй систeме нaтt вьI мo'rcтс вoспo)lьзoвaтьс'ме'IoдамиgelRefPixеLx() и gelRefPixеlY( i(oтopьlе DoзвРaщzuo1lФoPдивaтьt х и Y сooтве'rственIio. }lаrlPимеp, int
х=spriЕe. getRefPixetx ( ) ;
int
Y:sрrite'seLRefPiхeLY( )'
ксTaти, eстьеще oдитr сп0с06 задaть пoлo'(енис спpaй1'a в ()6Iцейсистсмe пaт вoспoльзoваться метoдoм sеtPosition ( )' дalIвЬIй мrтoд та,кхc пD коopдиEaтьI x и ! Еo в oтлliчие o'r' paссмoTpеI{Jrolo вьIIl1е метoдa' м ( ) yсTаflaвЛивaет не 6aзoвьй пtrксex, a левый вcРxний sеt Position }тоjl тa' tlaпpимcР: sprite.
( ) вьI мoхетe пРиiryдительнo сдеЛать сJ]oй с пoмoщьIo п,lетortasetvisiЬ]e l . ' l ь I ми л и l l e в и д и v ь l м , в к а ч t ' с ] в е п а Р а v f l P a д а н н ы й м е r o д l l Р и н и v а е l п е P Iryio тtrln Ьoolean. l{aпpимeP' след'!oщая стpoкa кoдa делaет спPaйт
s р I i t е . s е t v i s i b 1 e (f a 1 s e ) ; A следyloщийRoд свoяaделaетспPaйт видимьIм.
г.t
д t(J б т
sрr1Ee.setVisib1e (true) ; итax. мьl Pассмo'Ipeли праl<тичес(I{все t что связalro сo сxPaйтами' oстaлся ствеlIIrый асllclt l. . llpoсqeт
стoЛкIioвепий'
пPедставьтс'
t!тo вьI пиlleтe
игpy'
Pимер гolrки. Ес,lес.rвсIтнo' чтo яa дoPorе бyдут JIn6o IIPеIятствия, либo мalIrиIlьI' пРи стoЛкнoвении с Ilиl'и маIшипa дoDкна кaк{.o PеaгиРoвaтьt
IiиIo пPямoyгo'IlьнIrк с'ro)Iкнoвсния PaспРoстPaпяется нa вeсь спPaйт' y вaс есть спPaйl! сoдсpжaпшй сaмoлeт. и спPaйц сoдeРl€ l ций paкеry
ЦJ д.," npo"oу.o,o""n" этих спpaЙтoв пеPесеlry1'сяl кaк яa pис),llкеспpaвa' вьl мo. )кете заl1yскa'гь aЕиl'aцию взpыва кaк Рaкеты. тaк и
180
rчeнь час,|o 6ьlвaют сит}aции. xolдa вaм IrР(rlo. чтoбьi пРямoyгoЛЬIiик стоЛк .:Eия в Расllpoстpaвялся не па весь спРaй]: ЕtaпPимеР. ссли РaкеTa пofla/laст , тo вpяд ли сaмoлеl,дoл'(eir взрьiвaться, нo зтo тo]ке 6yсчитaтъся l1еpесечениeм,
@ u* '--..
l
s( -l сг
пеРеoUреде.
лить пPямoyгoxЬпик стoлкEo. qтoбьl yчитьIвaлoсь стoлкнoвс}rие тoлькo с кopпyсoм сaмoЛе,la. как нa и30бpax(ении слeвa' B этoM с]ryчaсlonaдalrие РаRс. тьI в сЛед oт вьDсllonuьrх гa3oв считаться нс 6yде1l 'i!i' rellеpЬ тlPиводeм llpЙмepьl кoдa' дoпусттrм' y lraс eс'rь ДBа спpaЙтa| arr.tча-,laпp'lмоугoЛьIlики стoлкrroвellи,l y oбoих сllPaй-гoв Paспрoсl.Pаtlяtoтся fia . ' 0бЛaсть. чтобьI рIIaть' псPссскаro'l,ся oЕlи иЛи I,Iе'г.вьl мo)il€ т е вoсtloЛьзoвaтъ" !(l'o)(oм сo11idesl'ith { ) . .)lur мe'гo''l'lРи!,имireт двa тIaPaметPаi oб'ьeкт Kп'lс. llPoвери'гь стojlкIlol]еllиеl и псPсN{с[iIrуIo типa {: кol.oPьl}'l lry,кнo lrrite, пoзжс. Me'l,oд нсмltoгo мьI рaссмo'гpим кo'r'opoi]t :еall' смьIсл !desl'iiLh()Do3rrPацaeтзI,IaЧенисtruе'еслиlIPямoyгoЛьIIикисl.o.Jllсlo']e. j lIсPсссI{аlотсл' и з!Iачel1ие f a 1se. ссЛr,ruс'r : ean сrash=airр1ain'сoL]idевWiЕh(roсkеt'fаLse) lt 0ге в пеPомс}[roй сresh
;
бyдс'l.хpaпиться PсзyЛьтaT вьiпoлненr.я метoдa'
|onьз)4{гес|. 'гoгoчгn6I'|l'||рPLелиIьн.'вьtй|tгaчoyгоЛLP ( llaPaметРa: l l p и I r и м a e т ч е ' г Ь t P с м е т о д :oдoм definесo1]isionReсЕaпg]e )' шtrPlrlry и и егo ylrа lloвoгo IIрямоуIoльirикa 'Р,I(ина1.ъI веPхнсгo х и Y Лс!oго всpхllеIo JIевoго oтIroси1.еxЬItо oпрсдсЛяIoтся :ory 3aмстьте. sтo кoсlPдиInтьI
сте o6ъект кЛaссa.Iilеdlаyеr' пPи сoздаIrI'Iиo6ъeктl вaм Еyя{Eo yкaJaть пяrь РaмстPoв| (oличе€ т вo стoл6цoв и стPoк D Tа6Лице слoяl ()6ъект к,aссn Image. д ( P ж ] U L и йф P J | ч е ч l ь | , и ш и P и I r v и u Ь I 'o r y ф P J г м , н г ' |в г п ч к L ч , BышсiPивсдснвъIй
)I(еипдeкс фpaгмепTaизo6Pлксния' кстaти, стoлбцьIш стРolш нyNlepro,lся' Irалс 0' B xeBoм BcРхLrемyг]Iyнаxoдится яqeйкa (0'0)' FIallPимеP' сЛедyкJщaя кa кoдa yс'r.aнa!Ливaст в яЧсйкy (0'3) фPaгi{elt].сипдeксoм 2' t L t I а y . s е Е с е1 1 ( 0 , з . 2 ) j .гaким
(] aнимl{рoвaнirЬIмIr яrlейкaмrl 'I{елao6ст0''l. llо.дрyгolly' поPс/r запoлrre}Iиeм i'иPoваIrнyк) 'Iчейкy пY'Фo сoздalь. .цеxaeТся этo с пoмolцЬIo м сrrаtеAnimatёdti 1e ( ) , (oтoPЬlii tlpиllимael' сдиllствснньI'i пaPaметp фpaгмcнTa' котoPьlй должеrr 6ьIть yстa}Ioвxеll B кaчссТвс начiUIьнoIo сoд€ гo ячс!iки' Если вьI хoтLIте сoздaть пyстyю aниМировaн}Jylo яЧейкyt пepeдaйтeв
честве гIaPaмeтPa0, Mе,гoдвозBрaщaсто1.рица.гсльrroе числo - иt.Iдекс Сл€ л yюrциI; кoд сo3дaетпyстЦo анt{миPовaвнуюячейкy и сoxPаIrяетеe пePемеIrIroйanimindex, i,,
o
,1,d.\
-ll.y.
,.."..\,
|ё
6oг
ё 0,'
пoслe сoздallllя яЧейi(y IrРкяо тaблI,lцy с uoмoщЬlo seEсе1L (). сJlедyloщая с'lPoка Itща пoмeпIaет создallryк] aнимиpoвaявую B Jlевый всрхEий угод тa6л'{riьI' L i l '1 a y . s e t с e l 1 ( 0 , О , а n i m i n d e x ) ;
с'гPoк.rpu]э1iс сlаss *i." ,,,,o.",.spriLe, o чсм свидeтеЛьствyет
Dr
ex!еnds spriЕe. B кoнстDvкгoDc
t(лfсса мы (наt!а,ra вызьlllаем
кoнстP)ктtlр
пO vмоЛl|аIlию, тo
..*p* *o"..p1i.'op i"'o..o sрrit e' кofl.p\rrтop пU .".,]]]:',1'у 11.P.:":,.
пI,'ксeлoD. аiаmo,ni.pn! и pаз6ивaетеro нa кal(pЬIPaзмePoм l00х10()
eou'ё1се.l'||РсЛеTe'].Il,lо BЬппс, 3аrсv vсtаlIaв.|ивa(м oЧсPедЬ ка'lPOB f.эте. ( и н , r e ^ . ,l l l , c псрвьrй каЛP из oчеРёЛи .;;'.;" у. ' "''"" '"вас]v в сrrpзй' ""'
Метoд Down ( ) уj}елllчивaeт B кJассe !рисYтствyloт o6ъ'IвЛеIrия тPeх методoв.
.!:::]-.l1::i.:::..:"': i oь'.n'i, 'o сстьдвиraеTo61'сlств""' ".,i o6ъeкт снo.Baпоявля "pл""u'y l1apai{c'l.pa' кaчестве в ',pй*,, **.pы
"ередaсTся в,'tеBoи 8гIрaBo.^J_aм^e "i'lt в сaмoм всpчr .[вa oстаJiЬныx метoдa двигаloт o6ъсш не въIхoдrUr зa задaнlrые чтo эти ме;oдьI таIсже пpoвсРяIoт. чт()6ьI o6ъект слoя. B даlltroм c.тучае зa пPедельI liлитoчlroгo
пPoиrPыBaтелеЙ' кoтoPьIй oсFцествляет oснoвныe фркrrиlr yпpaвления' М ]ltеPпpoигPывaтeЛeйoчень пoхo)i(rla менeдx€ p сlloeв. ПРoиl.pьiвaтель 6ePст дaiiныe дnЯ вoспРoизвeдеIrия из истoчr-rикa дaтiньrx. и Irикoп{дaтrl{ьIх06ьIчя0 с,трrtaт фальr с paсширeниeм .m|d, .wаv и дp}тие.
PеryлятopьIoпpeдeляIоттo, как 6yдст вoсIIPoизвoдитьсязв}к' Bьr мoжeтe poвaтЬгpoмкoсть вoсrryoизвeдeнияи др.
(O ou,,,ooсxeмa нa
сlIPaвa'
pa6oты рисy}Il(е
Aсейчaс Pассмo.l.PиN' всe вышeoписаIlнoe нa пPиl'еpe из жцзIrи. Mе[rед'<eр _этo ч е Л o в с к . P е ш и в l ц и й п o ( . | y ш а т ь \ 4 v J ь | к yд' Л я э т o l o е м v * v , n с n n p o " . p " u o ' . , ц ц!'Ilрип,tеPмaгниToфoв. МeнеДrrер мo)кeт взяTь срaзy IrескoлЬкo мaгIrитoфolioв r вIoroчaть их rroпеPеменIro или oдI'oвPемеI!нo.
нo сaп[пo сe6e пРol,llpывaтeльвPяд xr' смo)кетчтo{o вoсllpoизвести,Лoэтoмy че .]IoвеквстaвЛяетв Ilегo кaссетyили кoмпaIсT"диск' нa мaгIrитoфoне o6ыqIro пPlrсyrствyет пeскoЛькo pеryлятoPoв| pеryЛятoP IPot.. кoсTиj реryлятop тoЕaи тaIсда.лeе'oни сooтв€ т ствyют pеryлятoрaмна сxеме. o6щий пРинциll вoспРoизведеЕия зв}тa' я дiъ{aю, IloEятеIr. Теlleрь РaссмoTPш' как этo всe реалllзyeтся в юiaссах язькa J2[4E.