The GUI toolbox Swing
Examples
Note : the two examples SwingApplication and
CoordinatesDemo come from the tutorial about the SDK5.0. These
examples are no longer included in the current tutorial, which
is mainly based on the use of the IDE NetBeans.
Hello World
The two following examples give the same result, but using two
different implementations for handling the "action" event on the
button :
- In this
version , the main class implements ActionListener
and then, is used as instance of ActionListener to
listen the button.
- In this
version, the instance of ActionListener is
written using an anonymous inner class.
- In this
version, the instance of ActionListener is
written using a lambda expression.
SwingApplication
This example of
a
simple
application
comes
from the Java tutorial.
Layout Demos
These examples
come from the Java tutorial. The most useful layout managers are (in
my opinion) :
- Border Layout
- Box Layout
- Flow Layout
- Grid Layout
- GridBag Layout
Coordinates Demo
This example,
which explains how to draw in a component, comes from the Java
tutorial.
Line
This example, shows how
to draw an line segment starting where you have pressed the mouse
button and ending where you have released it.
A similar example,
using Graphics2D instead Graphics.
This example show how
to manage key events. Now, we keep all the lines, until the space
bar is pressed. Note in particular the use of KeyAdapter and how the
focus is managed.
Browser
This example shows how to implement a simple web browser. More
specifically, it contains a generic history.
- First version
- The Browser
class allows to load an html page, given its url, and then
to load other pages following the hyperlinks.
- When a web page cannot be loaded, a default page, Failure.html,
is used to prevent the user.
- Version with history
- The history is implemented in a generic way in the class History.
Then it may be reused in any context where a history is
needed. History extends Observable
and it is this class which will activate the updates of the
two others components Browser
and HistoryBar,
which are instances of Observer.
- HistoryBar
uses two images for its buttons : HorizontalPrevious.png
et HorizontalNext.png,
placed in a directory named images.
- When a web page cannot be loaded, a default page, Failure.html,
is used to prevent the user.
- Version with multiple
windows and a menu
- In this version, classes History,
HistoryBar
and Failure.html
are unchanged.
- The class Browser has been
renamed BrowserFrame.
The frame is completed by adding a menu "File" allowing to
create or close a frame, or to quit the application. Setting
the size and showing the frame is left to the responsibility
of the client of the class BrowserFrame.
- Frames are managed by a FrameController,
implemented here by the class Browser.
Please note the use of a dialog to confirm the intention to
quit the program.