Tutvustusnäited - Tutvus Java keelega

Tutvustusnäited
Et arvuti käituks vastavalt kasutaja soovidele, tuleb talle anda korrektseid käsklusi. Arvutile käskluste andmiseks on loodud programmeerimiskeeled. Iga käsklus palub arvutil midagi teha. Kui meie näeme mõistlikult töötavat programmi, siis tegelikult täidab arvuti üksteise järele otstarbekalt kirjutatud käsklusi. Programmeerija tööks on käsud niimoodi kirja panna, et nende täitmise tulemusena arvuti kasutajale soovitut teeb.
Java keel võimaldab kirjutada mahukaid (mitme tuhande leheküljelisi) programme. Käsud pannakse "kestadesse", et oleks võimalik pikas tekstis orienteeruda. Ka lühikesel programmil peab ümber olema vähemalt kaks kesta: meetod ja klass. Kui kasutatakse varem valmistatud klasse, tuleb mõnikord kirjeldada nende klasside asukoht, et nad üles leitaks. Järgnevalt mõned näiteprogrammid koos väikeste kirjeldustega. Kui mõni lause tundub võõrana, ärgu lugeja lasku end sellest suuremat häirida. Ülejäänud peatükkides püütakse kõigele lähemalt seletust anda.
Lihtne raamaken
Tutvustuseks väike programm, mis loob ekraanile pealkirjaribaga tühja akna. Esimene rida teatab, et klass Frame asub paketis java.awt. See klass suudab ekraanile tekitada pealkirjariba, nuppude ja servadega tühja akna. Kui klassi peaks vaja minema, teab arvuti seda sealt otsida. Rida public class Raamike teatab, et klassi nimi on Raamike. Samas kataloogis paiknevaid klasse saab eristada nime järgi. Loogeline sulg tähistab klassi algust ning klass lõpeb, kui selle sulg kinni läheb. Selles klassis on vaid üks meetod, nimega main, mis hakkab tööle iseseisva programmi käivitamisel. Kui klassis main-meetodit pole (näiteks klassis Frame), siis saab seda kasutada vaid mõne teise klassi kaudu. Meetodi sees olevaid käske hakkab arvuti järjestikku täitma. Esimese käsuga loome raami ning määrame talle pealkirjaks Esimene. Siis määrame suuruse ekraanipunktides ning lõpuks palume raam nähtavaks teha. Ongi kogu programm.
import java.awt.Frame;
public class Raamike{
public static void main(String argumendid[]){
Frame f=new Frame("Esimene");
f.setSize(200, 200);
f.setVisible(true);
}
}
|
|
Roheline raamaken
Kui on vaja ühest paketist sisse tuua mitu klassi, siis võib klasside nime asemele panna tärni. Piiritleja public (avalik) tähendab, et vastavat klassi (või meetodit) on võimalik kasutada ka väljastpoolt kataloogi. Nii saab vajadusel väikestest klassidest midagi suuremat kokku lappida. Käsk setBackground määrab raami tausta ning setLocation raami asukoha ekraanil.
import java.awt.*;
public class Raamike2{
public static void main(String argumendid[]){
Frame f=new Frame("Esimene");
f.setSize(200, 200);
f.setBackground(Color.green);
f.setLocation(200, 100);
f.setVisible(true);
}
}
|
|
Liikuv raamaken
Kui tahame raami ekraanil liigutada, siis tuleb tema asukohta mõne aja tagant vahetada, nii nagu filmis vahetuvad kaadrid. Et liikumine liialt kiire ei oleks, selleks tuleb vahepeal oodata. Ootamise käsuks on Thread.sleep ning sulgudes olev number näitab ootamise aega milli(ehk tuhandikes)sekundites. 1000 on siis parajasti terve sekund. Meetodi main sulgude järel on kirjas throws Exception, mis näitab, et oleme teadlikud eriolukorraohtliku meetodi Thread.sleep kasutamisest.
import java.awt.*;
public class Raamike3{
public static void main(String argumendid[]) throws Exception{
Asukoha muutus
Frame f=new Frame("Esimene");
f.setSize(200, 200);
f.setVisible(true);
Thread.sleep(1000);
f.setLocation(200, 100);
Thread.sleep(1000);
f.setLocation(400, 100);
}
}
Tsükli abil liikumine
Kui sooviksime kõik kohad välja kirjutada, kus raam sujuva liikumise teel asub, läheks meie programm päris pikaks. Et kirjutusvaeva ning ka programmi mahtu vähendada, tuleb luua tsükkel. Tsüklit kasutatakse, kui tahetakse mõnda korraldust mitu korda anda. Siin on mitmel korral arvutatud raami uus asukoht ning raam seejärel sinna joonistatud. Raami asukoha väärtuste hoidmiseks võetakse kasutusele muutujad x ja y. Tsükli while sees olevaid käske korratakse seni kuni x-i väärtus on kolmesajast väiksem. Kui raam on jõudnud juba kolmesajanda ekraanipunktini, siis väljub programm tsüklist ning enam raam ei liigu.
import java.awt.*;
public class Raamike4{
public static void main(String argumendid[]) throws Exception{
int x=0, y=150;
Liikuv raam
Frame f=new Frame("Esimene");
f.setSize(200, 200);
f.setVisible(true);
while(x<300){
f.setLocation(x, y);
Thread.sleep(100);
x=x+5;
}
}
}
Värvide koostamine
Tuntumaid värve saab ette anda konstandina (Color.red, Color.blue). Punasest, rohelisest ja sinisest osast kokku aga saab segada meelepärase värvi. Siin näites muudetakse raami tausta sinise värvi osa.
import java.awt.*;
public class Raamike5{
public static void main(String argumendid[]) throws Exception{
int punane=100, roheline=100, sinine=20;
Muutuv värv
Frame f=new Frame("Esimene");
f.setSize(200, 200);
f.setBackground(new Color(punane, roheline, sinine));
f.setVisible(true);
Thread.sleep(1000);
while(sinine<255){
f.setBackground(new Color(punane, roheline, sinine));
Thread.sleep(50);
sinine=sinine+4;
}
}
}
Joonistamine
Klassi Graphics abil saab joonistada mitmesuguseid kujundeid. Jooni, ovaale, nelinurki ja muudki. Täpsemaid näiteid saab abiinfost (JDK API). Iseseisva programmi töö algab alati meetodist nimega main. paint-meetod kutsutakse välja, kui ekraanile on vaja joonistada. Ovaal joonistatakse ristküliku sisse ning neli koordinaati näitavadki selle ristküliku andmeid: esimesed kaks vasaku ülemise nurga asukohta, edasised laiust ja kõrgust. Kui viimased on võrdsed, siis on tegemist ringiga. Draw tähendab joone joonistamist, fill puhul värvitakse ka seest. setColor määrab värvi, millega edaspidi joonistatakse.
import java.awt.*;
import java.applet.Applet;
public class Joonis2a extends Applet{
public void paint(Graphics g){
g.setColor(new Color(200, 100, 100));
g.fillOval(10, 60, 30, 30);
g.setColor(Color.black);
g.drawOval(10, 60, 30, 30);
g.drawLine(25, 90, 25, 150);
g.drawLine(25, 100, 5, 110);
g.drawLine(25, 100, 45, 110);
g.drawLine(25, 150, 15, 230);
g.drawLine(25, 160, 35, 230);
}
public static void main(String argumendid[]){
Frame f=new Frame("Kriipsujuku");
f.setSize(100, 250);
f.add(new Joonis2a());
f.setVisible(true);
}
}
|
|
Veebilehel vastava programmi vaatamiseks tuleb koostada html-fail, mille sees märkida, kus ning kui suurena loodud graafilise sisuga klassi tuleks näidata.
Joonistusharjutus
|