import java.net.URL; |
Eli tässä esimerkissä JButtonin piirtoasu on määritetty uudelleen.
Ensin haeKuva-metodissa määritetään URL Esimerkki.class-tiedoston sijainnin perusteella (Kun ohjelma käännetään .java-tiedostoista luodaan .class-tiedostoja. NetBeansissa class-tiedostot löytyvät paketin build>classes-kansiosta. Esimerkki löytyy ohjeesta, jonka olen tehnyt jar-pakettien luontiin). URL:n java-apin perusteella sen voi määritellä myös antamalla URL:n konstruktorille osoite String muodossa kuten olen kommenttiin laittanut. Tämän jälkeen työkalupakin kautta haetaan Image osoitteen perusteella.
Tämän jälkeen paintComponent-metodissa kuvan leveys ja korkeus voidaan kysyä JButtonilta. drawImage-metodissa parametrina annetaan kuva, x,y-koordinaatit kuvan vasemmalle yläkulmalle, kuvan mitat sekä komponentti, johon kuva lisätään. x,y-koordinaatit ovat esimerkissä 0,0 koska JButtonin sisällä koordinaatiston origo on JButtonin vasemmassa ylälaidassa eikä ikkunan vasemmassa ylälaidassa. Kuuntelevaksi komponentiksi kelpaa JButton, koska JButton on perinyt Component-luokan, joka toteuttaa rajapinnan ImageObserver. Itse en ole perehtynyt ImageObserverin merkitykseen tarkemmin, mutta javan apin Field Summaryn perusteella ImageObserver saa tietoa ainaskin ongelmista mitkä ovat ilmenneet kuvaa piirrettäessä.
Viimeksi muokattu 30.6.2012