This text follows the variant of the Windowed Systems Programming class as prepared and taught by David Bolding at Georgia State University. It is intented to be a reference text for that class, and to serve as a general introduction to graphical programming.
Contributions are welcome!
The text is being copied over from a WikiBook that exists in Mr. Bolding's wikimedia sandbox. One may wonder, why copy a document that already exists over to github.io, especially if contributions are sought? The answer is that the book is intended to be used in an academic context: this requires that we maintain some measure of control over the contents.
Python and Java were chosen for pragmatic reasons: both are freely available on a variety of platformss, and both are very common in academic and educational environments (at GSU's in particular!). This course is not intended to be a detailed course in either TK-with-Python or JFX-with-Java; isntead, the intent is to focus on abstract concepts and "repeating themes" in how graphical libraries work, with specific examples provided in TK and JFX.
It is worth noting that the instructor has traditionally taught the class using Windows Presentation Foundation and C#. The transition to Java and Python is being made in resposne to student feedback: while WPF is an impressive graphical system, most students do not know C# and are not familiar with Microsoft's stack, and so following along was difficult. If anyone wishes to contribute equivalent examples in C#, we would be most interested!
- [Concepts](ch concepts/concepts.md)
- [Basic Widgets](sec basics/basic widgets.md)
- [Selection Widgets](sec basics/selection widgets.md)
- [Text Widgets](sec basics/text widgets.md)
- [Sliders and Progress-Bars](sec basics/sliders.md)
- [Container Widgets](sec basics/containers.md)
- [Dialogs and Windows](sec basics/dialogs and windows.md)
- [Overriding Draw Methods](sec advanced/draw methods.md)
- [Long-Running Jobs](sec advanced/long-running jobs.md)
- [The Model-View-Controller Pattern](sec advanced/MVC.md)
- [Design Patterns](sec appendices/design patterns.md)
- [Threads](sec appendices/threads.md)