Skip to main content

Jeff Friesen

Jeff Friesen is a freelance software developer and educator specializing in
Java technology. In addition to teaching Java at a local college, he's
written several books on Java, with Beginning JavaT SE 6
Platform: From Novice to Professional being his most recent book. Jeff
has also written numerous articles for, and Check out his website to discover these
articles, as well as additional material on Java, JavaFX, and other software



Discover a JavaFX application for reading RSS and Atom newsfeeds
This article introduces you to the RSS and Atom APIs. You first explore their common foundation, and then tour each API's key classes. Finally, you gain insight into how these APIs work by exploring the FeedTask class's newsfeed-polling implementation.
Leverage undocumented JavaFX capabilities to support custom paints in version 1.2.
Leverage undocumented JavaFX capabilities to support custom cursors in versions 1.2 and 1.1.1.
Sometimes what you need is not an enormous framework, but a grab bag of bite-size morsels. That's what Jeff Friesen has in this article, which offers three commonly needed graphic conveniences, implemented with the Image I/O package.
Want to use a USB device in Java? Some with native abstractions, like mass-storage drives, work as you'd expect, but many devices like webcams and game controllers are simply invisible to the Java programmer. Jeff Friesen looks at two APIs that expose USB devices to Java, then shows how to build...
Disabled users depend on assistive technologies to help them work with computers, and this technology is built into Swing. In this article, Jeff Friesen shows how to use a free implementation of the Java Speech API to create a program that reads the text of Swing and AWT components as a user...
Jeff Friesen returns to image manipulation in the latest installment of "Java Tech," showing how to create an image-editing application with a series of common, useful graphic effects. He also adds a status bar that explains the effect of each menu item.
Many GUIs use an "embossing" effect to create the illusion of depth, manipulating pixel colors to suggest small ridges and valleys. In this installment of "Java Tech," Jeff Friesen introduces an algorithm to perform the embossing effect, and shows how easy it is to implement with Swing and Java2D.
Are you ready to put your generics knowledge to the test? Java Tech columnist Jeff Friesen has compiled a quiz with 20 questions designed to dig deep into the concepts, features, and gotchas of this major J2SE 5.0 feature.
BlueJ, an IDE for beginning Java programmers, has more under the hood than you might expect. In the second part of his survey of BlueJ, Java Tech columnist Jeff Friesen looks at BlueJ's support for debugging, unit testing, building executable JARs, its configurability, and more.
It's hard to teach the object-oriented concepts of Java when the first thing the student sees is the very procedural public static void main (String[]). BlueJ offers a way to teach Java's OO concepts in a visual environment, allowing the student to connect and implement classes with mouse clicks...
Java Tech columnist Jeff Friesen has been coding in Java for nearly ten years, and in that time, he's found some surprises in the language, like how += doesn't necessarily do what you expect, or the hazards of invoking a potentially overridden method in a constructor. In this article, he provides...
TWAIN is the standard for image acquisition from scanners and digital cameras, but its GUI assumptions make it ill-suited for Linux and other *nix operating systems. In part three of his series looking at image acquisition in Java, Jeff Friesen looks at the SANE alternative, and how to use it with...
With his first JTwain library, Jeff Friesen got image acquisition working, but with limited functionality and many inefficiencies. In this installment of the series, he builds a better JTwain by introducing TWAIN "capabilities."
Java doesn't provide a standard API for acquiring images from devices like scanners and digital scanners, but there is a widely adopted standard, TWAIN, that can be called from native code. In this installment of Java Tech, Jeff Friesen shows how to bring that functionality to Java.
Jeff Friesen's introduction to thread synchronization continues with a consideration of communication between threads, the use of volatile variables, and the new synchronization concepts introduced in J2SE 5.0.
Java's thread support is powerful and comprehensive, but it can also lead to problems if you don't fully understand what you're doing. In his latest Java Tech column, Jeff Friesen introduces the concepts of locks, synchronization, and the dangers of deadlock.
In the previous Java Tech, Jeff Friesen showed how to create the logic for a computerized game of Nim. This month, he wraps up by using this in two complete versions of the game, one for console I/O and one with a Swing GUI.
Offering a two-player game that only a single player can enjoy requires writing a computer opponent that's "smart" enough to be an interesting opponent. Java Tech columnist Jeff Friesen shows how to write a Java application to play the game of Nim.
J2SE 1.5 introduces the idea of variable arguments, or varargs, to method signatures. As Jeff Friesen explains in his first Java Tech installment, this makes many method calls more convenient and opens the door to a C-style printf().