Java Graphical User Interfaces An Introduction To Java Programming David Etheridge download
Java Graphical User Interfaces An Introduction To Java Programming David Etheridge download
https://ebookbell.com/product/java-graphical-user-interfaces-an-
introduction-to-java-programming-david-etheridge-1779014
https://ebookbell.com/product/java-2-programs-with-a-graphical-user-
interface-klausen-poul-232888350
https://ebookbell.com/product/learning-java-through-applications-a-
graphical-approach-duane-j-jarc-4720722
https://ebookbell.com/product/filthy-rich-clients-developing-animated-
and-graphical-effects-for-desktop-java-applications-haase-22042698
https://ebookbell.com/product/more-doityourself-java-games-an-
introduction-to-java-graphics-and-eventdriven-programming-annette-
godtland-50195188
More Doityourself Java Games An Introduction To Java Graphics And
Eventdriven Programming Paperback Annette Godtland Paul Godtland
https://ebookbell.com/product/more-doityourself-java-games-an-
introduction-to-java-graphics-and-eventdriven-programming-paperback-
annette-godtland-paul-godtland-7191966
https://ebookbell.com/product/more-doityourself-java-games-an-
introduction-to-java-graphics-and-eventdriven-programming-annette-
godtland-22630734
https://ebookbell.com/product/more-doityourself-java-games-an-
introduction-to-java-graphics-and-eventdriven-programming-annette-
godtland-godtland-22630736
https://ebookbell.com/product/java-2d-graphics-jonathan-
knudsen-42994366
https://ebookbell.com/product/computer-graphics-using-
java-2d-and-3d-liang-y-daniel-zhang-21995762
DAVID ETHERIDGE
BOOKBOON.COM
NO REGISTRATION NEEDED
David Etheridge
2
Java: Graphical User Interfaces – An Introduction to Java Programming
© 2009 David Etheridge & Ventus Publishing ApS
ISBN 978-87-7681-496-0
3
Java: Graphical User Interfaces Contents
Contents
1. The Input/Output Package 6
1.1 An Introduction to Streams 7
1.2 Categories of Streams and their Classes 7
1.3 Using Streams 11
1.4 Object Streams 19
1.5 Files and File I/O 21
1.6 Data Streams 25
1.7 Summary of Streams 27
2. Collecting Data II 28
2.1 The Java Collections Framework 28
2.2 The Core Collection Interfaces 28
2.3 Implementation Types 31
2.4 Operations, Methods, Iterators and Algorithms 34
2.5 Generics and the Collections Framework 36
2.6 Collections in the Themed Application 42
2.7 Summary of the Java Collections Framework 46
www.maersk.com/mitas
4
Java: Graphical User Interfaces Contents
3. User Interfaces 47
3.1 What is a User Interface? 47
3.2 Client/Server Applications 49
3.3 The Construction of User Interfaces 50
3.4 A Visual Approach to GUI Design 64
3.5 Activating User Interface Components 68
3.6 The GUI for the Themed Application 83
3.7 Summary of Event Handling 87
5
Java: Graphical User Interfaces The Input/Output Package
There are approximately 60 classes in the java.io package. Consequently, this guide does not aim to cover
every stream class. Instead, some of the main categories of streams are explained in general terms and
examples are provided of the use of specific types of streams in a practical situation.
The reader is referred to the java.io package of the API for the documentation associated with the many
stream classes provided by the Java language.
Please click the advert
www.job.oticon.dk
6
Java: Graphical User Interfaces The Input/Output Package
A stream is an abstraction of the underlying mechanism that is used by an operating system to transfer
information into and out of a Java programme. The level of abstraction means that the developer uses
classes of the java.io package for I/O. As a consequence, I/O can be regarded as a high-level programming
activity that transparently maps onto the low-level mechanisms associated with system I/O.
A stream is a sequence of bits of information that is passed along a virtual path between a source and a
destination. An input stream provides a path from a source to a programme and, similarly, an output
stream is a path from a programme to a destination. Figure 1.1 visualises the general representation of
streams as paths between code and a source or a destination.
Sources and destinations of information include files, disks and networked resources; the information
passed along streams can take any form, such as objects, text, images and sound.
Streams in the java.io package usually occur as input/output pairs and fall into one of three categories -
byte streams, character streams or object streams. This section looks at classes in the first of these two
categories in relatively general terms to give a flavour of their functionality and to encourage the reader to
refer to the API for the java.io package. A later section examines object streams.
A byte streams carries a sequence of binary data and is one of two types, either an input stream or an
output stream. To read a byte stream in an application, one of the subclasses of the InputStream class is
used. An extract from the API displayed on the next page shows some of the input stream classes that are
subclasses of the abstract class InputStream.
7
Java: Graphical User Interfaces The Input/Output Package
java.io
Class InputStream
java.lang.Object
java.io.InputStream
All Implemented Interfaces:
Closeable
Direct Known Subclasses:
AudioInputStream, ByteArrayInputStream, FileInputStream, FilterInputStream,
ObjectInputStream
Table 1.1 below summarises the main functions of these InputStream types, as indicated by the
documentation for each class in the API.
Type Function
ByteArrayInputStream Contains in internal buffer that contains bytes read from the stream
FilterInputSteam: has a number of Contains some other input stream, which it uses as its basic source
subclasses of data, possibly transforming the data along the way or providing
additional functionality
Some of the corresponding output stream classes that are subclasses of the abstract class OutputStream
are shown in the next extract from the API.
java.io
Class OutputStream
java.lang.Object
java.io.OutputStream
All Implemented Interfaces:
Closeable, Flushable
Direct Known Subclasses:
ByteArrayOutputStream, FileOutputStream, FilterOutputStream, ObjectOutputStream
8
Java: Graphical User Interfaces The Input/Output Package
Table 1.2 below summarises the main function of these OutputStream types, as indicated by the
documentation for each class in the API.
Type Function
FilterOutputStream: has a number of Contains some other output stream, which it uses as its basic source
subclasses of data, possibly transforming the data along the way or providing
additional functionality
The next sub-section presents a similar overview of some of the character streams.
The Java language uses the UTF–16 (Unified Transformation Format) 16 bit encoding to represent text
characters. The streams that carry text-based information are called readers and writers. To read a
character stream in an application, one of the subclasses of the Reader class is used. The following extract
from the API shows some of the readers that are subclasses of the abstract class Reader.
Please click the advert
9
Java: Graphical User Interfaces The Input/Output Package
java.io
Class Reader
java.lang.Object
java.io.Reader
All Implemented Interfaces:
Closeable, Readable
Direct Known Subclasses:
BufferedReader, CharArrayReader, InputStreamReader, StringReader
Table 1.3 summarises the main function of these readers, as indicated by the API.
Type Function
Some of the corresponding subclasses of the abstract class Writer are shown in the next extract from
the API.
java.io
Class Writer
java.lang.Object
java.io.Writer
All Implemented Interfaces:
Closeable, Flushable, Appendable
Direct Known Subclasses:
BufferedWriter, CharArrayWriter, OutputStreamWriter, PrintWriter, StringWriter
Table 1.4 on the next page summarises the main function of these writers, as indicated by the API.
10
Java: Graphical User Interfaces The Input/Output Package
Type Function
StringWriter A character stream that collects its output in a string buffer, which
can then be used to construct a string
Although most applications use a GUI to input relatively small amounts of information to an application,
streams are very useful for testing the methods of classes in an application before such an interface is
constructed. On the output side of an application, object streams can be used to write objects out to a file
so that the data associated with an application takes on a persistent state. Streams are also extremely useful
when an application needs to output information to data storage devices or input data from them.
A general algorithm for using streams for I/O in an application can be expressed as follows:
An application typically uses more than one stream chained together, depending on whether a buffer or a
bridge or some other functionality is required: see tables 13.1 to 13.4 for a summary of the functionality of
streams. Chaining streams can be visualised as connecting pipes together, as you would do when
undertaking plumbing jobs at home, as shown in Figure 1.2. (The author strongly recommends that the
reader never attempt this kind of thing in your own home; instead, bring in a professional plumber to do
the work.)
11
Random documents with unrelated
content Scribd suggests to you:
– Maga még nem szólt otthon?
– Nem, – felelte elborulva Groll úr. – Az én apám szigorú ember.
– A szigorú emberek fiai nem házasodnak? – érdeklődött Stefike.
– De igen, csakhogy azt veszik feleségül, akit az apjuk akar!
– Hát akkor… – akadozott Stefike rémülten, – akkor…
Groll úr közelebb húzta magához a leányt:
– Ne féljen, megpuhítom én az öreget.
Stefike megvigasztalódott és a jövendőről beszélt.
– Maga építőmester, tud maga villát építeni?
– Tudok, – mondotta Groll úr. – Hogyne tudnék!…
– Juj, de jó, – örvendezett a kislány, – mert tudja, én villában
szeretnék lakni…
Groll úrnak erről eszébe jutott a József-utcai hatszobás lakás és
most már erősen el volt szánva arra, hogy kiadja másnak. Mert mért
ne laknának tornyos tetejű villaházban Stefivel? Csak az öreget kell
megpuhítani. Groll úr minden este lefogadta, hogy másnap előveszi
Groll urat (az öreget) és beszél vele. Mert ez az átmenet nem tarthat
soká. Vagy előbb, vagy utóbb amúgy is megtudja, hiszen már
széltében suttogják a vizivárosi tetők alatt. A Vizivárosból nem nagy
ut a Krisztina, még a legkövérebb asszony is el tud gyalogolni odáig,
nem hogy a szárnyakon szálló hír…
Groll úr ugyanis szakított a tartózkodással és már délelőtt is
karonfogvást járt Stefikével. Stefinek, – akit eddig nem vettek
számba, – hangosan köszöntek a vénasszonyok. Frau Krisztin már
messziről integetett neki és alázatosan hajtotta meg a fejét:
– Kezét csókolom, kisasszony!
Warmpoltzter úr olyan alázatosan beszélt vele, mint az alattvaló a
királlyal és Muttermayer néni megsímogatta az arcát. Stefi ugyan azt
állította, hogy a legjobban szerette volna megfojtani, de jobbnak
találta a símogatást. És Stefi értette a dolgokat. Néhány nap alatt
megújhodott a ház, varró asszonyok lepték el az utcai szobát. Nagy
pesti boltosok hordották a holmit és nem kértek egy árva fillért sem
érte. Groll úr jövendőbelije jó volt minden összegre, Stefike pedig
értette a hitelbevevést. Ica nem győzött szörnyűlködni azon, amit
művelt, de amikor megbotránkozott, Stefi letorkolta:
– Az én vőlegényem se nem báró, se nem patikus, hanem
komoly ember!
Ebben igaza is volt a lánynak, mert Groll úr az utolsó időkben
nagyon elkomolyult. Mintha bántotta volna valami. Stefike nem tudta
kicsalni belőle a nagy komolyság okát, Groll úrban ilyenkor
megfagyott a szó. Nem merte ugyanis elmondani, hogy Fábián úr
nyomára jutott ennek a szerelemnek és megsuhogtatta megint a
nadrágszijjat. Hogy nem sujtott le vele, annak Gruberl néni volt az
oka, aki közéjük állott, amikor összecsaptak az ebédlőben.
– Groll Fábián, – mondotta, – az ne csináljon botrányt, aki tíz óra
után jár haza öreg korára. Én szégyelném magam!
Groll Fábián rámordult a vénasszonyra:
– Maga fogja be a száját. Semmi köze hozzá!
Gruberl nénit azonban nem lehetett elhallgattatni:
– Maga szívtelen, lelketlen ember. Ahelyett, hogy boldog volna,
hogy a fia házasodni akar, skandalmot csinál. Az a leány szép, jó és
fiatal. Nem lehet mindenkinek pénze…
Gruberl néni ugyan sohasem látta Stefikét, de úgy gondolta, jó
lesz elhelyezkedni kegyeiben. Fábián úr azonban kijelentette:
– Ebből nem lesz semmi!
– De lesz, – felelte Groll úr. – Elveszem úgy, hogy te ne tudjál
róla!
– Akkor kidoblak, – harsogta Fábián úr. – Mindenkit kidobok, aki
erről beszél!
Ez a megjegyzés Gruberl néninek szólt, aki morogva csoszogott ki
a szobából. Groll úr (az ifjabb) ugyanezt cselekedte, de haragosan
bevágta az ajtót, csakúgy rengett belé a ház. Groll Fábián ebből
megértette, hogy fiában lázadó ösztönök ébredeztek. És elhatározta,
hogy meg fogja verni. Kegyetlenül. Csak arra várt, hogy Gruberl néni
ne legyen jelen, amikor szóba kerül az a lány, akiről Muttermayer úr
megbízható adatokat hozott. És Fábián úr mindig előhozá fiának
ezeket az adatokat, gondolván, hogy beléjük kap, mint a hal a
horogba és akkor előkerülhet a nadrágszíj megint. De Groll úr (az
ifjabb) óvatos vala. Megérezte a nadrágszíj szelét és hallgatott.
– El fogom venni titokban, – gondolta, úgy képzelvén, hogy akkor
amúgy is beleegyezik az öreg. Aztán meg Stefike ért a nyelvén,
hiszen lecsalja a fecskefészekből a tollatlan madarat is.
Egy délelőtt levelet kapott a József-utcából. A levél rövid volt
nagyon.
– Tessék átjönni a nagyságos úrnak, – írták, – délután négykor ki
akarják venni a lakást.
Groll úr a megírt időre megjelent a házban. A házmesterné
örömmel ujságolta:
– Nagyszerű népek, még a holmit is megveszik…
Groll úr fölment a lakásba, amely furcsa szagú volt a portól, meg
a parfümtől és amelyben ropogtak. a bútorok. Türelmetlenül várta az
érkezőket, szeretett volna túlesni a dolgokon. A házmesterné
kinyitotta az ablakokat, hogy friss levegő jöjjön be a szobákba,
megveregette a vánkosokat, melyekből vastagon felhőzött ki a por.
– Kár volna megtartani – mondotta, – mindent megeszik itt a
piszok. Nem is tudom minek tartotta a nagyságos úr?!
Kívül éleset berrent a csengő, mire a házmesterasszony meglepő
fürgeséggel nyitotta ki az ajtót.
– Itt van a nagyságos úr – hallatszott a szava, – tessenek beljebb
fáradni…
Groll úr (az ifjabb) észrevette, hogy két ember jött. Házaspár.
Amikor azonban kinyilt az ajtó, mintha villámos ütés szikrázott volna
keresztül rajta, mely az égnek mereszté haját. A belépő hölgy is
elsikoltotta magát. Hangosan, ijedten és tágra nyílt szemmel bámult
Groll úrra.
Groll úr megismerte: Gloriett volt. Gloriett, a kacagószemű ördög.
A leány mögött ott állott – Groll Fábián, az öreg Groll, aki fiának az
erkölcsről szokott beszélni. Az öreg irtózatos zavarban volt,
megrokkant, összeaszott és dadogni kezdett. Groll úr (az ifjabb)
fölcsattanó hangon támadt neki:
– Áá… szépen vagyunk. Nem szégyelli magát?
Groll úr (az idősebb) könyörgő pillantást vetett a fiára.
– Ne itt – mondotta, – ne itt…
Groll úr (az ifjabb) intett neki és bevitte a szomszéd szobába.
– Kikérem magamnak, hogy öreg korára ilyeneket tegyen. Nem
szégyelli magát?! Megtiltom magának a disznóságokat!
Fábián úr össze volt törve. Alázatosan állott fia előtt. Azon sem
csodálkozott volna, ha az ifjú úr nadrágszíját suhogtatja. Szerencsére
azonban nadrágtartót viselt.
– Maga akarja megtiltani nekem, hogy én egy tisztességes leányt
elvegyek? Maga hoz szégyent a családra, nem az én
menyasszonyom!
– Beleegyezem – mondotta az öreg, – csak hallgass…
Groll úr (az ifjabb) azonban birtokba vette a poziciót:
– Nincs szükségem rá. Én nem a magam ura vagyok. De
kénytelen leszek a maga körmére is nézni. Nem tűröm, érti, nem
tűröm el az ilyeneket…
Groll Fábián megsemmisült. Érezte, hogy vége van. Megszűnt a
hatalma, az akarata, egyszerre öreg ember lett, aki megbotlott egy
kőben és elesett.
– Azt a nőszemélyt majd elintézem én – mondotta Groll úr (az
ifjabb) és átment oda, ahol Gloriettet hagyták. De Gloriett már nem
volt a lakásban. Elillant, elszökött, eltűnt, mert nem szerette a
jeleneteket.
Rax doktor másnap nem tudott hová lenni a megtiszteltetéstől,
hogy megint beállított hozzá Groll úr.
– Küldjön annak a nőszemélynek négyezer koronát – mondotta
és megadta Gloriett címét, melyet Fábián úr nagynehezen bevallott.
– Mi történt már megint? – érdeklődött a fiskális.
– Semmi, csak behálózta az öregemet.
Rax doktor megcsóválta a fejét:
– Nem jó kikezdeni az ilyen személyekkel – mondotta, – az
ilyennek mindig rossz a vége.
– Az én esetemben jó vége lett – felelte Groll úr, aztán
elmenőben még egyszer megjegyezte:
– Nagyon jó vége lett…
*
A kéményseprőéknél nyomott volt a kedv, pedig már itt volt a tél
és rágyújtottak tüzeikre a házak. Vastag, nagy füstök szállottak a
háztetők fölött és a fekete legények kiszálltak a fehér városba, mint
a varjak. A pénz dült a házhoz, mert hiszen megszaporodtak a
kémények a Groll cég jóvoltából. Pedig éppen a Groll cég okozta a
nagy lehangolódást, mert a posta kartonra nyomott híradást hozott.
És szólt a híradás, hogy a cég vezetését Groll Gusztáv úr vette át, aki
folytatója leszen a régi elveknek, régi hagyományoknak. Troszték
úgy vették a híradást, mintha halotti jelentés lett volna. És
mélységes rezignációval állapították meg:
– Az a szerencsétlen el fogja venni azt a kis bestiát!
Mindent hajlandók voltak megbocsátani, a bárót, a patikust, csak
Groll urat nem. Úgy érezték, ezek a ragadozók egyenesen azért
szállottak a csendes házak közé, hogy elvigyék a legjobb, a
legkövérebb falatot. Amikor aztán másodszor is hírt hozott a posta,
már föl sem bontották a levelet. Mert úgy is tudták, hogy mit
beszélnek a betűk. A besurranó asszonyok, a Frau Krisztinek és a
Gruberl nénik gyorsabbak voltak, elmondották, hogy megtörtént az
eljegyzés. És ami a legszomorúbb vala: Groll Fábián, a
keménydereku Groll is ott volt az ünnepségen, melyről hiányoztak a
kéményseprők és a kalaposok. A halászmesterek sem voltanak jelen,
kik bizonyára lesütötték volna szemüket láttára az erkölcsök
fordulásának, mely abban csúcsosodott ki, hogy Primusz úr brudert
ivott a hatalmas Fábiánnal. Primusz mester egyébként elemében volt
és leányaira mutatván, nagy megelégedéssel jelentette ki:
– Ez az én iparom! A szebbik iparom!
Groll Fábián nagyot kacagott a megjegyzésen, a báró azonban
félrehúzta a száját. Nem tudott beleilleszkedni a hangulatba, pedig
már régen kisült róla, hogy naplopó. Néhányszor el akart illanni a
boldogság elől, de nem bírt Mancika szemével, melynek legkisebb
rebbenése engedelmessé tette, mint egy gyereket.
– Úgy látszik mégis eszcájgot fogok pucolni – gondolta
elkeseredéssel, amikor aztán Stefike feléje billentette a mérleget.
Groll Gusztáv úr ugyanis elfoglalván a parancsnoki hidat, nagy
terveket forgatott agyában. Hogy ezentúl Pesten is fog építeni, ahol
több a telek és magasabbra lehet emelni a háztetőket. Erre a célra
alkalmasnak látszott a báró, aki úgy tudott beszélni, hogy
elszédültek az emberek.
– Csak az ilyen gazember imponál odaát, – mondotta bizalmasan
Stefikének, ki észrevette, hogy leendő férjében kidagad a budai gőg,
mely abba a régi mondásba volt foglalható, melyet valamikor Fábián
úr recsegtetett:
– Nem tűröm a komiszságokat!
Ezt az elvet szigorú konzekvenciával vitte keresztül minden
vonalon. Legelsőnek Primusz mester és élete párja érezték meg
terhes nyomatékkal. Primusz úr ugyanis letette a gyalut és
megszüntette a reparálást. Reggeltől estig ott ült a Szomjas
Pacsirtában és a Zöld Hordóban, ahol istentelen magyar nótákra
tanította a dalárdát, úgy, hogy az asszonyi népek riadtan dugták be
fülüket. Primusz úrnak úgy megnőtt a tekintélye, hogy már messziről
lesüvegelték az iparosok, kik eddig szóba sem állottak vele. A
bádogosok, lakatosok és cserépfedők hozzádörgölődztek, mert ki
tudja, nem tud-e valami munkát kijárni a vejénél? Az erős Tóni
visszaitta vele a pertut, s elfoglalá régi helyét a bormérésekben,
mert Primusz mester nem adhatta oda magát ilyen alacsony
dolgoknak. Hitele megnyílt és bár sohasem fizetett, úgy élt, mint egy
fejedelem. A szégyenlős vizivárosi asszonyok, kik csak félfüllel
hallgatták beszédjét, most megnyitották előtte mindkét fülüket
(sokan még ajtójukat is) és nagy kárörömére minden leányos
anyáknak erkölcstelen életet folytatott vala.
Kiskirálysága azonban nem tartott sokáig, csak az esküvőig.
Esküvő után az ifjú Groll kemény szóval adta tudtára, hogy nem tűri
a komiszságokat és elrendelé, hogy apósa hurcolkodjék Pestre. Mert
itt elrontja a levegőt. E szigoru rendeletnek mégis volt enyhítése. Az,
hogy ezután havi pénzek járnak a Groll irodától és hogy – Fábián úr
megigérte, hogy sűrűn ellátogat a túlsó oldalra, ahol násza ura
jobban kiismeri magát az asszonyok körül. Mert dolgozni csak
Budán, élni pedig csak Pesten lehet.
És egy esztendőre a behurcolkodás után megint stráfkocsi
csörömpölte föl hajnali álmából a Medve-utcát. A dalárdisták már
ébredő asszonyokat találtak az ablakokban, kik jóleső elégtétellel
látták, hogy rakják föl a kocsi tetejére a kopott bútorokat. A dalárda
nótázott, a dalosok ittak, a két meklenburgi nekilódítá a szekeret és
bokrétás fejjel megindult a Margithíd felé. Az országúti barátok
templomában reggeli misére muzsikáltak a harangok és Primuszné
asszonyság a szemeit törölgette a gyalogúton. Eszébe jutottak a régi
álmok: a zsírbafúló élet hazajáró lelke kísértette.
– Nem érdemes leányokat nevelni – sóhajtott, mire Primusz
mester, ki éppen kibukkant a Szomjas Pacsirta ajtaján, átrikkantott
hozzá:
– Ugyan ne kacérkodj, Mári!
Ica a csendes tavaszi estéken elsétálgatott az urával. Békés,
csendes, egyszerű emberek voltak. Ott laktak a hegyoldalban és
amikor elmentek a Három Korona előtt, egy papagályt vettek észre
az egyik ablakban. Mérges, haragos állat volt és nem tudni miért,
folytonosan ezt rikácsolta:
– Au revoir! Au revoir excellence… Au revoir…
VÉGE
*** END OF THE PROJECT GUTENBERG EBOOK A HÁROM GALAMB:
REGÉNY ***
Updated editions will replace the previous one—the old editions will
be renamed.
1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside the
United States, check the laws of your country in addition to the
terms of this agreement before downloading, copying, displaying,
performing, distributing or creating derivative works based on this
work or any other Project Gutenberg™ work. The Foundation makes
no representations concerning the copyright status of any work in
any country other than the United States.
1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if you
provide access to or distribute copies of a Project Gutenberg™ work
in a format other than “Plain Vanilla ASCII” or other format used in
the official version posted on the official Project Gutenberg™ website
(www.gutenberg.org), you must, at no additional cost, fee or
expense to the user, provide a copy, a means of exporting a copy, or
a means of obtaining a copy upon request, of the work in its original
“Plain Vanilla ASCII” or other form. Any alternate format must
include the full Project Gutenberg™ License as specified in
paragraph 1.E.1.
• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”
• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.
1.F.
1.F.4. Except for the limited right of replacement or refund set forth
in paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO
OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.
Please check the Project Gutenberg web pages for current donation
methods and addresses. Donations are accepted in a number of
other ways including checks, online payments and credit card
donations. To donate, please visit: www.gutenberg.org/donate.
Most people start at our website which has the main PG search
facility: www.gutenberg.org.
ebookbell.com