Examples From Java Examples in a Nutshell, 2nd Edition

This directory contains the complete set of examples from the book Java Examples in a Nutshell, 2nd Edition.

Get the Book

If you don't already have a copy of the book, you should get one: it provides the context and explanation necessary to get the most out of the examples. You can buy a copy of the book from:

Legal Matters

The examples are Copyright © 2000 by David Flanagan. They are free for non-commercial use, but you must purchase a license if you want to use them commercially. The examples are provided as-is, with NO WARRANTY OF ANY KIND. See the license for complete details.

Working with the Examples

The Java examples are all defined in sub-packages of the package com.davidflanagan.examples. This means that you'll find the example source code in subdirectories of the directory com/davidflanagan/examples/

In order to work most easily with the examples, you'll need to add the current directory (the directory that you're reading this file from) into your CLASSPATH environment variable.

In the book, the title of each example gives its file name, and the package statement in each example shows what package it is a part of. With this information, you can easily find the source code for the example you want. For browsing convenience, however, the examples are also listed here by chapter, number, and name:

Chapter 1: Java Basics

1-1 Hello.java
1-2 FizzBuzz.java
1-3 Fibonacci.java
1-4 Echo.java
1-5 Reverse.java
1-6 FizzBuzz2.java
1-7 Factorial.java
1-8 Factorial2.java
1-9 Factorial3.java
1-10 Factorial4.java
1-11 FactComputer.java
1-12 FactQuoter.java
1-13 Rot13Input.java
1-14 SortNumbers.java
1-15 Sieve.java

Chapter 2: Objects, Classes, and Interfaces

2-1 Rect.java
2-2 RectTest.java
2-3 DrawableRect.java
2-4 ColoredRect.java
2-5 ComplexNumber.java
2-6 Randomizer.java
2-7 Averager.java
2-8 LinkedList.java
2-9 Sorter.java

Chapter 3: Input/Output

3-1 Delete.java
3-2 FileCopy.java
3-3 FileViewer.java
3-4 FileLister.java
3-5 Compress.java
3-6 RemoveHTMLReader.java
3-7 GrepReader.java
3-8 HTMLWriter.java

Chapter 4: Threads

4-1 ThreadDemo.java
4-2 ThreadLister.java
4-3 Deadlock.java
4-4 TimerTask.java
4-5 Timer.java

Chapter 5: Networking

5-1 GetURL.java
5-2 GetURLInfo.java
5-3 SendMail.java
5-4 HttpClient.java
5-5 HttpMirror.java
5-6 SimpleProxyServer.java
5-7 Who.java
5-8 GenericClient.java
5-9 Server.java
5-10 ProxyServer.java
5-11 UDPSend.java
5-12 UDPReceive.java

Chapter 6: Security and Cryptography

6-1 SafeServer.java
6-2 SafeServer.policy
6-3 SecureService.java
6-4 Manifest.java
6-5 TripleDES.java

Chapter 7: Internationalization

7-1 UnicodeDisplay.java
7-2 ConvertEncoding.java
7-3 Portfolio.java
7-4 SimpleMenu.java
7-5 LocalizedError.java

Chapter 8: Reflection

8-1 ShowClass.java
8-2 Command.java

Chapter 9: Object Serialization

9-1 Serializer.java
9-2 IntList.java
9-3 CompactIntList.java

Chapter 10: Graphical User Interfaces

10-1 ShowComponent.java
10-2 Containers.java
10-3 FlowLayoutPane.java
10-4 GridLayoutPane.java
10-5 BorderLayoutPane.java
10-6 BoxLayoutPane.java
10-7 GridBagLayoutPane.java
10-8 NullLayoutPane.java
10-9 ColumnLayout.java
10-10 ColumnLayoutPane.java
10-11 ScribblePane1.java
10-12 ScribblePane2.java
10-13 ScribblePane3.java
10-14 ScribblePane4.java
10-15 ItemChooser.java
10-16 Scribble.java
10-17 CommandAction.java
10-18 FontChooser.java
10-19 PropertyTable.java
10-20 ComponentTree.java
10-21 WebBrowser.java
10-22 GUIResourceBundle.java
10-23 ResourceParser.java
10-24 CommandParser.java
10-25 ActionParser.java
10-26 MenuBarParser.java
10-27 MenuParser.java
10-28 ThemeManager.java
10-29 AppletMenuBar.java

Chapter 11: Graphics

11-1 GraphicsSampler.java
11-2 FontList.java
11-3 ColorGradient.java
11-4 BouncingCircle.java
11-5 GraphicsExample.java
11-6 Shapes.java
11-7 Transforms.java
11-8 LineStyles.java
11-9 Stroking.java
11-10 Paints.java
11-11 AntiAlias.java
11-12 CompositeEffects.java
11-13 ImageOps.java
11-14 Spiral.java
11-15 CustomStrokes.java
11-16 GenericPaint.java
11-17 Hypnosis.java
11-18 GraphicsExampleFrame.java

Chapter 12: Printing

12-1 ScribblePrinter1.java
12-2 ScribblePrinter2.java
12-3 HardcopyWriter.java
12-4 PrintableDocument.java

Chapter 13: Data Transfer

13-1 S impleCutAndPaste.java
13-2 Scribble.java
13-3 ScribbleCutAndPaste.java
13-4 ScribbleDragAndDrop.java

Chapter 14: JavaBeans

14-1 MultiLineLabel.java
14-2 Alignment.java
14-3 YesNoPanel.java
14-4 AnswerEvent.java
14-5 AnswerListener.java
14-6 YesNoPanelBeanInfo.java
14-7 AlignmentEditor.java
14-8 YesNoPanelMessageEditor.java
14-9 YesNoPanelCustomizer.java

Chapter 15: Applets

15-1 FirstApplet.java
15-2 Clock.java
15-3 Scribble.java
15-4 EventTester.java
15-5 ColorScribble.java
15-6 Soundmap.java

Chapter 16: Remote Method Invocation

16-1 Bank.java
16-2 RemoteBankServer.java
16-3 Mud.java
16-4 MudServer.java
16-5 MudPlace.java
16-6 MudPerson.java
16-7 MudClient.java

Chapter 17: Database Access with SQL

17-1 ExecuteSQL.java
17-2 GetDBInfo.java
17-3 MakeAPIDB.java
17-4 LookupAPI.java
17-5 RemoteDBBankServer.java

Chapter 18: Servlets and JSP

18-1 Hello.java
18-2 Counter.java
18-3 Query.java
18-4 login.jsp
18-5 forcelogin.jsp
18-6 portal.jsp
18-7 UserBean.java
18-8 Logout.java
18-9 DecorBox.java
18-10 WEB-INF/tlds/decor_0_1.tld
18-11 web.xml
18-12 makewar.sh: a script for packaging a web application

Chapter 19: XML

19-1 ListServlets1.java
19-2 ListServlets2.java
19-3 WebAppConfig.java
19-4 XMLDocumentWriter.java
19-5 DOMTreeWalkerTreeModel.java
19-6 WebAppConfig2.java