JAVA alkeet JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ ja Javascriptin kanssa. Huom! JAVA ja JavaScript eivät silti ole sama asia, eivätkä edes sukulaiskieliä. JAVA on olioperusteinen ohjelmointikieli eli se tarkoittaa sitä, että kaikki toiminnot rakennetaan luokkiin (class). JAVA on käännettävä kieli, mutta käännöstä ei tehdä tietokoneen ymmärrettäväksi koodiksi vaan virtuaalisen tietokoneen ymmärrettäväksi koodiksi. Tällöin java-koodeista tulee siirrettäviä mistä tahansa käyttöjärjestelmästä tai jopa konetyypistä toiseen. Se vaatii kuitenkin, että javavirtuaalikone on asennettuna kohdetietokoneelle tai käyttöjärjestelmään. Etuina: Riippumaton käyttöjärjestelmästä tai muusta alustasta, helppo oppia Haittoina: Hitaus, koska ohjelma suoritetaan virtuaalisen koneen kautta, vaatii virtuaalikoneen asennettuna tietokoneelle Java-kieleen liittyviä tiedostopäätteitä.java.class.jar tekstitiedosto, johon kirjoitetaan JAVA-kielinen ohjelma javavirtuaalikoneen suoritettava tiedosto esim. appletti javan arkisto, koodit, kuvat yms. mitkä liittyvät esim. applettiin voidaan pakata yhdeksi tiedostoksi
Ensimmäinen appletti import java.awt.*; import java.applet.*; //tuodaan awt-luokan komennot käyttöön //tuodaan applet-luokan komennot käyttöön public class minunappletti extends Applet //määritetään appletti nimeltä minunappletti { public void paint(graphics g) //paint-funktioon laitetaan piirtokomennot {g.drawstring("kirjoitusta",100,120); //drawstring-komennolla kirjoitetaan ruutuun // teksti annettuihin koordinaatteihin Font kirjasin; //esitellään Font-muuttuja nimeltä kirjasin kirjasin=new Font("Verdana",Font.BOLD+Font.ITALIC,24); //sijoitetaan kirjasin muuttujaan //Fontti lihavoitu, kursivoitu //Verdana, kokoa 24pt g.setfont(kirjasin); Color vari; //otetaan kirjasimeen sijoitettu fontti käyttöön //esitellään Color-muuttuja nimeltä vari vari=new Color(200,150,30,0.5); //asetetaan vari muuttujaan väri //r=200,g=150,b=30,läpinäkyvyys 50% g.setcolor(vari); //otetaan vari-muuttujaan sijoitettu väri käyttöön g.drawstring("erilaista kirjoitusta",60,80); Appletti tallennetaan samalla nimellä kuin appletti on määritelty ja päätteeksi tulee.java Eli tiedosto tallennetaan nimellä minunappletti.java Tämän jälkeen appletti tulee kääntää virtuaalikoneen ymmärtämäksi koodiksi, jolloin sen nimeksi tulee esim. minunapplettini.class Käännökseen tarvitaan kääntäjä esim. jdk-paketin (java development kit) kääntäjä javac http://www.oracle.com/technetwork/java/javase/downloads/index.html Käännöksen voi opettelua ja harjoittelua varten tehdä myös internetissä olevan kääntäjän avulla http://www.innovation.ch/java/java_compile.html
Javan piirtokäskyjä, käskyt sijoitettava piirtofunktion paint() {..tänne.. sisään ja piirto suoritetaan käskyjen kirjoitusjärjestyksessä eli ensiksi kirjoitettu piirtokomento suoritetaan ensin ja kuva näytetään kun viimeinen piirtokomento on suoritettu. Piirtoalustan koordinaatisto poikkeaa hieman matematiikasta tutusta koordinaatistosta (x,y). Vasen ylänurkka on piste (0,0) ja oikelle päin mentäessä x-koordinaatti kasvaa ja alaspäin mentäessä y-koordinaatti kasvaa. Piirtokomentoja g.drawline(20,30,100,200); //piirtää viivan pisteestä (20,30) pisteeseen (100,200) g.drawrect(30,40,100,60); //piirtää suorakulmion vasen ylänurkka pisteessä (30,40) ja leveys 100, //korkeus 60 g.drawoval(10,20,50,70); //piirtää ellipsin (soikion), joka mahtuu sellaisen suorakulmion sisään, jonka //vasen ylänurkka on pisteessä (10,20) ja leveys=50, korkeus=70 g.fillrect(70,60,80,150); g.filloval(170,70,80,150); //piirtää suorakulmion, mutta täytettynä //piirtää ellipsin, mutta täytettynä g.drawroundrect(70,60,80,150,20,10); g.fillroundrect(70,60,80,150,20,10); g.drawarc(40,80,100,200,0,90); g.fillarc(40,80,100,200,0,90); //piirtää kulmista pyöristetyn suorakulmion, kaksi viimeistä //lukua kertovat pyöristyksen leveyden ja korkeuden //piirtää täytetyn kulmistaan pyöristetyn suorakulmion //piirtää ympyrän kaaren, joka mahtuu suorakulmion sisään, //jonka vasen yläkulma on pisteessä (40,80) leveys=100, //korkeus=200 ja kaari kulmasta 0 kulmaan 90 //piirtää täytetyn ympyräsegmentin //piirtääksesi monikulmioita tarvitset taulukot monikulmion pisteiden x- ja y-koordinaateista int xkoord[]={50,100,100; int ykoord[]={50,50,100; //suorakulmaisen kolmion x-koordinaatit //y-koordinaatit g.drawpolygon(xkoord,ykoord,3); g.fillpolygon(xkoord,ykoord,3); //piirretään monikulmio viimeinen luku kertoo pisteiden //lukumäärän //täytetty monikulmio
Valmiin kuvan piirtäminen applettiin (jpeg tai gif-kuva) Image munkuva; //esitellään Image-muuttuja nimeltä munkuva munkuva=getimage(getcodebase(),"kissa.jpg"); //sijoitetaan muuttujaan kuva tiedostosta //kissa.jpg g.drawimage(munkuva,20,40,this); //piirretään kuva appletiin //vasempana ylänurkkana piste (20,40) Erikoismerkkien esittäminen Javassa Etsi merkin unicode-arvo esim. kreikan kirjain π ja unicode-koodiksi löytyy 03C0 http://mindprod.com/jgloss/unicode.html Kirjain Pii voidaan ottaa käyttöön g.drawstring("kreikan kirjain Pii \u030c0",50,50); Muutamia hyödyllisiä unicode arvoja ä 00E4 Å 00C5 $ 0024 ö 00F6 20AC 00A7 Ä 00C4 0022 Ö 00D6 \ 005C å 00E5 00A3
Hiiren käsittelyä (Java 1.0, vanhanaikainen tapa) public boolean mousedown(event e, int x, int y) //hiiren napin painallus //x ja y ovat hiiren koordinaatit return true; public boolean mousedrag(event e, int x, int y) //hiiren liikutus/napin kanssa return true; public boolean mouseup(event e, int x, int y) //hiiren napin vapauttaminen return true; public boolean mouseenter(event e, int x, int y) //hiiri tulee applettiin return true; public boolean mouseexit(event e, int x, int y) //hiiri lahtee appletista return true; public boolean mousemove(event e, int x, int y) //hiirta liikutetaan appletissa return true;
Säikeet eli Thread-luokka ja Runnable raja-pinta Säikeet eli itsenäiset ohjelman osat mahdollistavat moniajon eli usean tehtävän suorittamisen samanaikaisesti. Todellisuudessa tämä vain tarkoittaa resurssien jakamista säikeiden kesken, mutta java-ohjelmaa voidaan suorittaa toki myös laiteympäristössä, jossa todellakin on esim. useita prosessoreita käytössä ohjelman suorittamista varten. Säikeillä toteutetaan tavallisesti ajastimia esim. animaatiot (näytetään uusi kuva aina 40 millisekunnin välein eli 25 kuvaa sekunnissa) Appletin nimeltä Saie määräävän luokan perään tulee kirjoittaa implemets runnable public class Saie extends Applet implements Runnable { Thread ajastin; public void init() { //Alustetaan appletti ajastin=new Thread(this); ajastin.start(); //Luo säie //Käynnistä säie //run-funktioon tehdään säikeessä suoritettavat komennot public void run() { while(lopetusehto!=true) { try { ajastin.sleep(100); //Säie odottaa 100 millisekuntia catch (InterruptedException e) {;