## Introduction to Programming Using Java

## Version 9.0, Swing Edition

(May, 2022)

#### Author: David J. Eck (eck@hws.edu)

| WELCOME TO Version 9.0 of Introduction to Programming Using Java, a free, on-line textbook for introductory programming that uses Java as the language of instruction. This book is directed mainly towards beginning programmers, although it might also be useful for experienced programmers who want to learn something about Java. Version 9 covers Java 17. It updates the previous version mostly by moving definitively to Java 17 and by adding a new Swing edition. This edition of Version 9 uses Swing for GUI programming; an alternative edition that uses JavaFX instead of Swing is also available. Earlier versions of the book are also available; see the preface for links to older versions. You can the download this web site for use on your own computer. PDF, e-book, and print versions of the textbook are also available. Links can be found at the bottom of this page. Readers are strongly encouraged to try out the sample programs as they read the book! You can download the source code separately or as part of the web site using the links below. See the README file for information about how to compile and run the examples. ### Short Table of Contents: Full Table of Contents Preface Chapter 1: Overview: The Mental Landscape Chapter 2: Programming in the Small I: Names and Things Chapter 3: Programming in the Small II: Control Chapter 4: Programming in the Large I: Subroutines Chapter 5: Programming in the Large II: Objects and Classes Chapter 6: Introduction to GUI Programming Chapter 7: Arrays, ArrayLists, and Records Chapter 8: Correctness, Robustness, Efficiency Chapter 9: Linked Data Structures and Recursion Chapter 10: Generic Programming and Collection Classes Chapter 11: Input/Output Streams, Files, and Networking Chapter 12: Threads and Multiprocessing Chapter 13: GUI Programming Continued Source Code for All Examples in this Book Glossary News and Errata ©1996--2022, David J. Eck. This work is licensed under a Creative Commons Attribution-Noncommercial-ShareAlike 4.0 License. (This license allows you to redistribute this book in unmodified form for non-commercial purposes. It allows you to make and distribute modified versions for non-commercial purposes, as long as you include an attribution to the original author, clearly describe the modifications that you have made, and distribute the modified work under the same license as the original. Permission might be given by the author for other uses. See the license for full details.) This book is available for downloading and for on-line use at the Web address: https://math.hws.edu/javanotes-swing/ ### Downloading And Other Links Full Web Site Download: https://math.hws.edu/eck/cs124/downloads/javanotes9-swing.zip — This "zip" archive contains a complete copy of the web site. It should be usable on almost any computer. Size: 4.4 Megabytes. Source Code Downloads: https://math.hws.edu/eck/cs124/downloads/javanotes9-swing-example-programs.zip — A zip archive of the "source" directory from the web site, which includes source code for sample programs from the text. Note that if you download the complete web site, then you already have a copy of the same source directory. See the README file. Size: 750 Kilobytes. https://math.hws.edu/eck/cs124/downloads/javanotes9-swing-exercise-solutions.zip — A zip archive containing source code for all the end-of-chapter exercises. These have been extracted from the web pages that contain the solutions as a convenience. They are not included in the web site download. See the README file. Size: 300 Kilobytes. PDF Downloads: https://math.hws.edu/eck/cs124/downloads/javanotes9-swing-linked.pdf — a PDF version with internal links for navigation and external links to source code files, exercise solutions, and other resources that are not included in the PDF. Recommended for on-screen reading. Size: 6.5 Megabytes; 790 pages. https://math.hws.edu/eck/cs124/downloads/javanotes9-swing.pdf — a PDF version without links, more suitable for printing. Size: 6.0 Megabytes; 797 pages. E-book Downloads. https://math.hws.edu/eck/cs124/downloads/javanotes9-swing.mobi, for Kindle. https://math.hws.edu/eck/cs124/downloads/javanotes9-swing.epub, for most other ebook readers. These should be considered permanently experimental. The ebooks include answers to quizzes and exercises but do not include source code for sample programs; the sample programs can be downloaded separately, above. Print Version Available from Lulu.com: Printed version — I have made this book available for purchase in printed versions from the print-on-demand publisher lulu.com. This is for convenience only, for those who would like to have a bound printout in a nice form. (Please do not feel obliged to buy the printed version; I do not make any money from it!) The book is available in a thick and somewhat unwieldy 788-page printed version: Introduction to Programming Using Java. Source Files for the Book Complete Sources — The complete source files that are used to produce both the web site and PDF versions of this book are available for download, but will be useful only to a very limited audience. See the end of the preface for more information and a link.

(14 May 2022, Version 9.0 released)