Esitysmallit
Javassa on kaksi tulostusmallia: Tulostettava
työpaikat ja Sivutettava
työpaikkoja.
Tulostettavat
Tulostettava
työt ovat yksinkertaisempia kahdesta tulostusmallista. Tämä malli käyttää vain yhtä PagePainter
koko asiakirjalle. Sivut renderöidään peräkkäin alkaen sivun nollasta. Kun viimeinen sivu tulostuu, PagePainter
täytyy palauttaa NO_SUCH_PAGE
arvo. Tulostusalijärjestelmä pyytää aina sovellusta renderoimaan sivut peräkkäin. Esimerkiksi, jos sovellustasi pyydetään renderöimään sivut viisi seitsemän, tulostusalijärjestelmä pyytää kaikkia sivuja seitsemänteen sivuun asti, mutta tulostaa vain viisi, kuusi ja seitsemän sivua. Jos sovelluksesi näyttää tulostusvalintaikkunan, tulostettavien sivujen kokonaismäärä ei tule näkyviin, koska tätä mallia käyttävän asiakirjan sivujen lukumäärää ei voida tietää etukäteen.
Voidaan lukea
Sivutettava
työpaikat tarjoavat enemmän joustavuutta kuin Tulostettava
työpaikkoja, koska jokainen sivu a Sivutettava
työ voi sisältää eri asettelun. Sivutettava
työpaikkoja käytetään useimmiten Kirja
s, kokoelma sivuja, joilla voi olla erilainen muoto. Selitän Kirja
luokan hetkessä.
A Sivutettava
työpaikalla on seuraavat ominaisuudet:
- Jokaisella sivulla voi olla oma maalari. Voit esimerkiksi saada maalarin toteuttamaan kansilehden tulostamisen, toisen taidemaalarin sisällysluettelon ja kolmannen koko asiakirjan.
- Voit asettaa eri sivumuodon jokaiselle kirjan sivulle. Jonkin sisällä
Sivutettava
työ, voit sekoittaa pysty- ja vaakasivuja. - Tulostusalijärjestelmä saattaa pyytää sovellustasi tulostamaan sivuja peräkkäin, ja jotkin sivut voidaan ohittaa tarvittaessa. Jälleen, sinun ei tarvitse huolehtia tästä niin kauan kuin voit toimittaa minkä tahansa sivun asiakirjasi pyynnöstä.
-
Sivutettava
työn ei tarvitse tietää kuinka monta sivua asiakirjassa on.
Kirjat
Myös uusi, koska versio 1.2 on Kirja
luokassa. Tämän luokan avulla voit luoda monisivuisia asiakirjoja. Jokaisella sivulla voi olla oma muoto ja oma maalari, mikä antaa sinulle joustavuutta luoda hienostuneita asiakirjoja. Koska Kirja
luokka toteuttaa Sivutettava
käyttöliittymä, voit toteuttaa oman Kirja
luokka kun tarjotaan Kirja
luokassa puuttuu tarvitsemasi ominaisuudet.
A Kirja
luokka edustaa kokoelmaa sivuja. Kun se luotiin ensimmäisen kerran, Kirja
esine on tyhjä. Jos haluat lisätä sivuja, käytä vain yhtä näistä kahdesta liitä ()
menetelmiä (katso lisätietoja tämän luokan selityksestä API-osiosta). Tämän menetelmän parametrit ovat PageFormat
objekti, joka määrittelee sivun fyysiset ominaisuudet, ja a PagePainter
esine, joka toteuttaa Tulostettava
käyttöliittymä. Jos et tiedä asiakirjasi sivumäärää, välitä vain Tuntematon_NUMBER_OF_PAGES
arvo liitä ()
menetelmä. Tulostinjärjestelmä löytää automaattisesti sivumäärän soittamalla kaikille kirjan sivumaalareille, kunnes se saa a NO_SUCH_PAGE
arvo.
API-määritelmä
Teoria ja käytäntö kohtaavat tässä osiossa. Edellisissä osioissa opimme sivurakenteesta, mittayksiköistä ja mallinnusmalleista. Tässä osassa tarkastellaan Java-tulostusliittymää.
Kaikki tulostukseen vaaditut luokat sijaitsevat java.awt.print
paketti, joka koostuu kolmesta rajapinnasta ja neljästä luokasta. Seuraavissa taulukoissa määritetään tulostuspaketin luokat ja käyttöliittymät.
Nimi | Tyyppi | Kuvaus |
Paperi | Luokka | Tämä luokka määrittää sivun fyysiset ominaisuudet. |
PageFormat | Luokka | PageFormat määrittää sivun koon ja suunnan. Siinä määritetään myös mikä Paperi käyttää sivun hahmontamiseen. |
TulostinTyö | Luokka | Tämä luokka hallinnoi tulostustyötä. Sen tehtäviin kuuluu tulostustyön luominen, tulostusvalintaikkunan näyttäminen tarvittaessa ja asiakirjan tulostaminen. |
Kirja | Luokka |
|
Sivutettava | Käyttöliittymä | A Sivutettava toteutus edustaa tulostettavia sivuja. Sivutettava objekti palauttaa joukon sivujen kokonaismäärän sekä PageFormat ja Tulostettava määritetylle sivulle. Kirja luokka toteuttaa tämän käyttöliittymän. |
Tulostettava | Käyttöliittymä | Sivumaalarin on toteutettava Tulostettava käyttöliittymä. Tässä käyttöliittymässä on vain yksi menetelmä, Tulosta() . |
Tulostingrafiikka | Käyttöliittymä | Grafiikka object toteuttaa tämän käyttöliittymän. Tulostingrafiikka tarjoaa getPrinterJob () tapa hankkia tulostustyö, joka suoritti tulostusprosessin. |
Sivutettava käyttöliittymä
Sivutettava
käyttöliittymä sisältää kolme tapaa:
Menetelmän nimi | Kuvaus |
int getNumberOfPages () | Palauttaa asiakirjan sivujen määrän. |
PageFormat getPageFormat (int pageIndex) | Palauttaa sivun PageFormat määritelty pageIndex . |
Tulostettava getPrintable (int pageIndex) | Palauttaa Tulostettava ilmentymä, joka on vastuussa pageIndex . |
Tulostettava käyttöliittymä
Tulostettava
käyttöliittymässä on yksi menetelmä ja kaksi arvoa:
Nimi | Tyyppi | Kuvaus |
int-tulostus (grafiikka, PageFormat pageFormat, int pageIndex) | Menetelmä | Pyytää, että grafiikka käsittelee annettua sivumuotoa renderöimällä määritetyn sivun. |
NO_SUCH_PAGE | Arvo | Tämä on vakio. Palauta tämä arvo osoittamaan, että tulostettavia sivuja ei ole enää. |
PAGE_EXISTS | Arvo | Tulosta() method palaa PAGE_EXISTS . Se osoittaa, että sivu välitettiin parametrina Tulosta() on hahmonnettu ja on olemassa. |
Jokaisen sivumaalarin on toteutettava Tulostettava
käyttöliittymä. Koska toteuttamiseen on vain yksi menetelmä, sivumaalareiden luominen saattaa tuntua helpolta. Muista kuitenkin, että koodisi on kyettävä renderöimään kaikki sivut järjestyksessä tai poissa järjestyksestä.
Siihen on kolme parametria Tulosta()
mukaan lukien Grafiikka
, joka on sama luokka, jota käytettiin piirtämään ruudulle. Koska Grafiikka
luokka toteuttaa Tulostin Graafinen
käyttöliittymän, voit hankkia TulostinTyö
joka suoritti tämän tulostustyön. Jos sivun asettelu on monimutkainen ja vaatii joitain kehittyneitä piirustusominaisuuksia, voit suoratoistaa sen Grafiikka
parametrin a Grafiikka2D
esine. Tämän jälkeen sinulla on pääsy koko Java 2D -sovellusliittymään.
Ennen kuin aloitat Grafiikka
esine, huomaa, että koordinaatteja ei käännetä tulostusalueen vasempaan yläkulmaan. Katso kuvasta 3 oletussijainnin sijainti.
(0, 0) näkyy tulostimen marginaalien vasemmassa yläkulmassa. Jos haluat tulostaa 1 x 1 tuuman suorakulmion, 1 tuuman sekä ylä- että vasemmasta marginaalista, käytä seuraavaa koodia:
1: julkinen int-tulostus (grafiikkagrafiikka, PageFormat pageFormat, int pageIndex) {2: Graphics2D graphics2D = (Graphics2D) -grafiikka; 3: Suorakulmio2D.Double suorakulmio = uusi Suorakulmio2D.Double (); 4: suorakulmio.setRect (pageFormat.getImageableX () + 72, 5: pageFormat.getImageableY () + 72, 6: 72, 7: 72); 8: graphics2D.draw (suorakulmio); 9: paluu (PAGE_EXISTS); }
Edellisestä esimerkistä näemme, että suorakulmion alkuperä on käännettävä manuaalisesti, jotta se tulostuu tulostettavan alueen yläosaan kuten kuvassa 1. Koodin yksinkertaistamiseksi voimme kääntää koordinaatit kerran ja käyttää (0, 0 ) tulostettavan alueen alkuperänä. Muuttamalla edellistä esimerkkiä saamme:
1: julkinen int-tulostus (grafiikkagrafiikka, PageFormat pageFormat, int pageIndex) {2: Graphics2D graphics2D = (Graphics2D) -grafiikka; 3: graphics2D.translate (pageFormat.getImageableX (), pageFormat.getImageableY ()); 4: Suorakulmio2D.Double suorakulmio = uusi Suorakulmio2D.Double (); 5: suorakulmio.setRect (72, 72, 72, 72); 6: graphics2D.draw (suorakulmio); 7: paluu (PAGE_EXISTS); 8:}
Käyttämällä Kääntää()
rivillä 3, voimme kääntää koordinaatit ja asettaa alkuperämme (0, 0) tulostusalueen yläosaan. Tästä lähtien koodia yksinkertaistetaan.
PrinterGraphics-käyttöliittymä
Tulostimen graafinen suunnittelu
käyttöliittymä koostuu yhdestä menetelmästä:
Menetelmän nimi | Kuvaus |
PrinterJob getPrinterJob () | Palauttaa TulostinTyö tälle renderöintipyynnölle ja sen toteuttaa Grafiikka luokassa |
Paperiluokka
Kahdeksan menetelmää muodostavat Paperi
luokka:
Menetelmän nimi | Kuvaus |
kaksinkertainen getHeight () | Tämä menetelmä palauttaa sivun fyysisen korkeuden pisteinä (1 tuuma = 72 pistettä). Jos esimerkiksi tulostat letter-kokoiselle sivulle, palautusarvo on 792 pistettä eli 11 tuumaa. |
kaksinkertainen getImageableHeight () | Tämä menetelmä palauttaa sivun kuviteltavan korkeuden. Kuviteltava korkeus on tulostusalueen korkeus, johon voit piirtää. Katso kuvasta 1 graafinen näkymä kuviteltavasta alueesta. |
kaksinkertainen getImageableWidth () | Tämä menetelmä palauttaa sivun kuviteltavan leveyden (tulostusalueen leveyden, johon voit piirtää). Katso kuvasta 1 graafinen näkymä kuviteltavasta alueesta. |
kaksinkertainen getImageableX () | Tämä menetelmä palauttaa kuvattavan alueen x-alkuperän. Koska marginaaleille ei ole tukea, paluuarvo edustaa vasenta marginaalia. |
kaksinkertainen getImageableY () | Tämä menetelmä palauttaa kuviteltavan alueen y-alkuperän. Tästä menetelmästä palautettu arvo vastaa ylärajaa. |
kaksinkertainen getWidth () | Tämä menetelmä palauttaa sivun fyysisen leveyden pisteinä. Jos tulostat letter-kokoiselle paperille, leveys on 812 tuumaa eli 612 pistettä. |
void setImageableArea (kaksinkertainen x, kaksinkertainen y, kaksinkertainen leveys, kaksinkertainen korkeus) | Tämä menetelmä määrittää kuviteltavan alueen ja määrittää sivun marginaalit. Itse asiassa API ei tarjoa menetelmää marginaalien asettamiseksi nimenomaisesti; sinun on laskettava ne itse. |
void setSize (kaksinkertainen leveys, kaksinkertainen korkeus) | Tämä menetelmä määrittää fyysisen sivun koon. Määritä 8,5 x 11 tuuman arkki antamalla 612 ja 792 pistettä. Huomaa, että oletuskoko on KIRJE . |
Ennen kuin siirrymme seuraavaan osaan, muista Paperi
luokassa määrittelee sivun fyysiset ominaisuudet. PageFormat
luokassa edustaa kaikki sivun ominaisuudet, kuten sivun suunta, koko ja paperityyppi. Tämä luokka välitetään aina parametrina Tulostettava
käyttöliittymän Tulosta()
menetelmä. Käyttää Paperi
saadaksesi kuviteltavan alueen sijainnin, koon ja sivun suunnan yhdessä muunnosmatriisin kanssa.
PageFormat-luokka
PageFormat
koostuu 12 menetelmästä:
Menetelmän nimi | Kuvaus |
kaksinkertainen getHeight () | Tämä menetelmä palauttaa sivun fyysisen korkeuden pisteinä (1 tuuma = 72 pistettä). Jos sivusi mitat ovat 8,5 x 11 tuumaa, palautusarvo on 792 pistettä eli 11 tuumaa. |
kaksinkertainen getImageableHeight () | Tämä menetelmä palauttaa sivun kuviteltavan korkeuden, joka on tulostusalueen korkeus, jolle voit piirtää. Katso kuvasta 1 graafinen näkymä kuviteltavasta alueesta. |
kaksinkertainen getImageableWidth () | Tämä menetelmä palauttaa sivun kuviteltavan leveyden - tulostusalueen leveyden, johon voit piirtää. Kuva 1 kuvaa graafisen kuvan kuviteltavasta alueesta. |
kaksinkertainen getImageableX () | Tämä menetelmä palauttaa kuvattavan alueen x-alkuperän. |
kaksinkertainen getImageableY () | Tämä menetelmä palauttaa kuviteltavan alueen y-alkuperän. |
kaksinkertainen getWidth () | Tämä menetelmä palauttaa sivun fyysisen leveyden pisteinä. Jos tulostat letter-kokoiselle paperille, leveys on 812 tuumaa eli 612 pistettä. |
kaksinkertainen getHeight () | Tämä menetelmä palauttaa sivun fyysisen korkeuden pisteinä. Esimerkiksi letter-kokoisen paperin korkeus on 11 tuumaa eli 792 pistettä. |
kaksinkertainen [] getMatrix () | Tämä menetelmä palauttaa muunnosmatriisin, joka muuntaa käyttäjän tilan pyydettyyn sivun suuntaan. Palautusarvo on AffineTransform rakentaja. |
int getOrientation () | Tämä menetelmä palauttaa sivun suunnan joko MUOTOKUVA tai MAISEMA . |
void setOrientation (int-suunta) | Tämä menetelmä määrittää sivun suunnan vakioiden avulla MUOTOKUVA ja MAISEMA . |
Paperi getPaper () | Tämä menetelmä palauttaa Paperi sivumuotoon liittyvä objekti. Katso edellisestä osiosta kuvaus Paperi luokassa. |
void setPaper (paperipaperi) | Tämä menetelmä asettaa Paperi objekti, jota PageFormat luokassa. PageFormat on oltava pääsy fyysisiin sivun ominaisuuksiin tämän tehtävän suorittamiseksi. |
Tämä päättää sivuluokkien kuvauksen. Seuraava luokka, jota tutkimme, on TulostinTyö
.
PrinterJob-luokka
TulostinTyö
luokka ohjaa tulostusprosessia. Se voi sekä välittää että hallita tulostustyötä. Alla on luokan määritelmä:
Menetelmän nimi | Kuvaus |
abstrakti void perua () | Tämä menetelmä peruuttaa nykyisen tulostustyön. Voit vahvistaa peruutuksen isCancel () menetelmä. |
abstrakti looginen arvo onPeruutettu () | Tämä menetelmä palauttaa arvon tosi, jos työ peruutetaan. |
PageFormat defaultPage () | Tämä menetelmä palauttaa TulostinTyö . |
abstrakti PageFormat defaultPage (PageFormat-sivu) | Tämä menetelmä kloonaa PageFormat välittää parametrit ja muokkaa kloonia oletusarvon luomiseksi PageFormat . |
tiivistelmä int getCopies () | Tämä menetelmä palauttaa kopioiden määrän, jonka tulostustyö tulostaa. |
abstrakti void setCopies (int-kopiot) | Tämä menetelmä määrittää työn tulostettavien kopioiden määrän. Huomaa, että jos näytät tulostusvalintaikkunan, käyttäjät voivat muuttaa kopioiden määrää (katso pageDialog menetelmä). |
abstrakti merkkijono getJobName () | Tämä menetelmä palauttaa työn nimen. |
staattinen tulostinJob getPrinterJob () | Tämä menetelmä luo ja palauttaa uuden TulostinTyö . |
abstrakti merkkijono getUserName () | Tämä menetelmä palauttaa tulostustyöhön liittyvän käyttäjänimen. |
tiivistelmä PageFormat pageDialog (PageFormat page) | Tämä menetelmä näyttää valintaikkunan, jonka avulla käyttäjä voi muokata PageFormat . PageFormat , syötetty parametreina, asettaa valintaikkunan kentät. Jos käyttäjä peruuttaa valintaikkunan, sitten alkuperäinen PageFormat palautetaan. Mutta jos käyttäjä hyväksyy parametrit, niin uusi PageFormat luodaan ja palautetaan. Koska se ei näytä samoja parametreja kaikissa käyttöjärjestelmissä, sinun on oltava varovainen käyttäessäsi pageDialog . |
abstrakti void setPageable (sivutettava asiakirja) | Tämä menetelmä kyselee asiakirjaa saadakseen sivujen kokonaismäärän. Sivutettava palauttaa myös PageFormat ja Tulostettava objekti jokaiselle sivulle. Ks Sivutettava käyttöliittymä lisätietoja varten. |
abstrakti void set Tulostettava (Tulostettava maalari) | Tämä menetelmä asettaa Taidemaalari esine, joka tekee tulostettavat sivut. A Taidemaalari objekti on objekti, joka toteuttaa Tulostettava luokka ja sen Tulosta() menetelmä. |
abstrakti void set Tulostettava (Tulostettava maalari, PageFormat-muoto) | Tämä menetelmä suorittaa samat tehtävät kuin abstrakti void set Tulostettava (Tulostettava maalari) , paitsi että toimitat PageFormat että Taidemaalari käyttää. Kuten on määritelty Tulostettava käyttöliittymä, Tulosta() menetelmä läpäisee a PageFormat objekti ensimmäisenä parametrina. |
abstrakti tyhjä tulosta () | Tämä menetelmä tulostaa asiakirjan. Se itse asiassa kutsuu Tulosta() menetelmä Taidemaalari aiemmin määritetty tähän tulostustyöhön. |
abstrakti void setJobName (Merkkijono jobName) | Tämä menetelmä määrittää tulostustyön nimen. |
tiivistelmä looginen tulosteDialog () | Tämä menetelmä näyttää tulostuksen valintaikkunan, jonka avulla käyttäjä voi muuttaa tulostusparametreja. Huomaa, että tämän vuorovaikutuksen tulosta ei palauteta ohjelmaasi. Sen sijaan se välitetään vertaiskäyttöjärjestelmälle. |
abstrakti PageFormat validatePage (PageFormat -sivu) | Tämä menetelmä vahvistaa PageFormat syötetty parametreihin. Jos tulostin ei voi käyttää PageFormat toimittamasi, sitten uusi tulostimen mukainen tuote palautetaan. |
Kirjatunti
Seitsemän menetelmää muodostavat Kirja
luokka:
>
Menetelmän nimi | Kuvaus |
void append (Tulostettava maalari, PageFormat-sivu) | Tämä menetelmä liittää sivun Kirja . taidemaalari ja PageFormat tälle sivulle välitetään parametreina. |
void append (Tulostettava maalari, PageFormat-sivu, int numPages) | Tämä menetelmä suorittaa samat tehtävät kuin void append (Tulostettava maalari, PageFormat-sivu) , paitsi että määrität sivumäärän. |
int getNumberOfPages () | Tämä menetelmä palauttaa sivun lukumäärän Kirja . |
PageFormat getPageFormat (int pageIndex) | Tämä menetelmä palauttaa PageFormat tietyn sivun objekti. |
Tulostettava getPrintable (int pageIndex) | Tämä menetelmä palauttaa taidemaalari tietylle sivulle. |
void setPage (int pageIndex, tulostettava maalari, PageFormat -sivu) | Tämä menetelmä asettaa taidemaalari ja PageFormat tietylle sivulle, joka on jo kirjassa. |
Tulostusresepti
Tulostamisen resepti on hyvin yksinkertainen. Luo ensin TulostinTyö
esine:
PrinterJob printJob = PrinterJob.getPrinterJob ();
Seuraavaksi käyttämällä setTulostettava ()
menetelmä TulostinTyö
, määritä Taidemaalari
vastustaa TulostinTyö
. Huomaa, että a Taidemaalari
esine on sellainen, joka toteuttaa Tulostettava
käyttöliittymä.
printJob.setPrintable (Maalari);
Tai voit asettaa PageFormat
kanssa Taidemaalari
:
printJob.setPrintable (Maalari, pageFormat);
Lopuksi Taidemaalari
objektin on toteutettava Tulosta()
menetelmä:
public int print (grafiikka g, PageFormat pageFormat, int sivu)
Tässä ensimmäinen parametri on grafiikkakahva, jota käytetään sivun renderointiin, pageFormat
on nykyisen sivun muoto ja viimeinen parametri on renderöitävä sivunumero.
Siinä kaikki siinä on - yksinkertaista tulostusta varten.
Johdanto kehykseen
Tässä sarjassa rakennettava tulostuskehys on täysin riippumaton Java-tulostus-sovellusliittymästä. Se mahdollistaa suuremman joustavuuden eri tuotosten tuottamisessa.Sen rakenteen avulla voit luoda asiakirjoja, sivuja ja tulostaa objekteja. Voit lisätä tulostettuja objekteja sivulle samalla, kun lisäät sivuja asiakirjaan. Tämän rakenteen avulla voit helposti viedä vientiominaisuudet PDF- tai HTML-tiedostoihin tai tulostaa suoraan tulostimelle käyttämällä tulostusliittymää. Mutta kehyksen päätavoitteena on yksinkertaistaa painettujen asiakirjojen luomista. Kun tulostat tulostusliittymän avulla, päädyt vain graafiseen kankaaseen, johon voit piirtää. Se ei käsittele kappaleiden, kuvien, piirustusten, grafiikan, taulukoiden tai juoksevien otsikoiden ja alatunnisteiden käsitteitä. Koska sinun on laskettava (x, y) alkuperä, tulostusalueen leveys ja korkeus, marginaalien asettaminen on työlästä. Tulostuskehyksemme korjaa kaikki nämä heikkoudet.
Johtopäätös
Tässä ensimmäisessä osassa käsiteltiin paljon maata. Tarkastelimme mittayksiköitä, sivun rakennetta, kahta renderöintimallia (Sivutettava
ja Tulostettava
) ja Kirjat
, ja teimme lopuksi yksityiskohtaisen selityksen tulostuksen sovellusliittymästä. Ensi kuussa keskitymme ensisijaisesti koodiin, koska käytämme kaikkea käytännössä. Tarkastelemme myös ongelmia, joita syntyy tulostettaessa useille alustoille. Tulevaisuudessa osaan 3 selitän yksityiskohtaisesti kehyksen suunnittelun ja toteutuksen.
Lisätietoja tästä aiheesta
- "Java-tulostus", Jean-Pierre Dubé (JavaWorld)
- Osa 1: Tutustu Java-tulostusmalliin (20. lokakuuta 2000)
- Osa 2: Tulosta ensimmäinen sivu ja renderoi monimutkaiset asiakirjat (1.12.2000)
- Osa 3: Jean-Pierre Dubé esittelee tulostuskehyksen, joka toimii Java Print -sovellusliittymän päällä (5. tammikuuta 2001)
- Osa 4: Koodaa tulostuskehys
- (2. helmikuuta 2001)
- Osa 5: Tutustu tulostuskehyksen tukiluokkiin
- (2. maaliskuuta 2001)
- Löydät tonnia kirjoja, jotka kattavat Java AWT: n, mutta yksikään ei käsittele tätä aihetta tämän kirjan laajuudessa. Jos kirjoitat käyttöliittymiä, sinulla on oltava tämä kirja tietokoneen vieressä: Graafinen Java 2, JFCAWT: n hallinta, osa 1, David M.Geary (Prentice Hall, 1998)
//www.amazon.com/exec/obidos/ASIN/0130796662/javaworld
- Tämä kirja oli hyödyllinen, kun Java 1.1 tuli ulos, ja se puhui ensimmäisenä Java-tulostuksesta: Siirtyminen Java 1.0: sta Java 1.1: een, Daniel I.Joshi ja Pavel A.Vorobiev (Ventana Communications Group, 1997)
//www.amazon.com/exec/obidos/ASIN/1566046866/javaworld
- Todennäköisesti paras Java 2D -kirja, tämä kirja kattaa kaikki 2D-sovellusliittymän näkökohdat ja tarjoaa myös
Grafiikka
kehys edistyneille 2D-sävellyksille: Java 2D API -grafiikka, Vincent J.Hardy (Prentice Hall, 1999)//www.amazon.com/exec/obidos/ASIN/0130142662/javaworld
- Erinomainen esittely Java 2D -sovellusliittymälle "Aloittaminen Java 2D: llä", Bill Day (JavaWorld, Heinäkuu 1998)
//www.javaworld.com/javaworld/jw-07-1998/jw-07-media.html
Tämän tarinan "Printing in Java, Part 1" julkaisi alun perin JavaWorld.