Swing application
Swing is a graphical user interface library for the Java SE platform. This example Swing application creates a single window with "Hello, world!" inside:
// Hello.java (Java SE 5)
import java.awt.BorderLayout;
import javax.swing.*;
public class Hello extends JFrame {
public Hello() {
super("hello");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(new JLabel("Hello, world!"));
pack();
}
public static void main(String[] args) {
new Hello().setVisible(true);
}
}
The first import
statement directs the Java compiler to include the BorderLayout
class from the java.awt
package in the compilation; the second import
includes all of the public classes and interfaces from the javax.swing
package.
The Hello
class extends
the JFrame
class; the JFrame
class implements a window with a title bar with a close control.
The Hello()
constructor initializes the frame by first calling the superclass constructor, passing the parameter "hello"
, which is used as the window's title. It then calls the setDefaultCloseOperation(int)
method inherited from JFrame
to set the default operation when the close control on the title bar is selected to JFrame.EXIT_ON_CLOSE
— this causes the JFrame
to be disposed of when the frame is closed (as opposed to merely hidden), which allows the JVM to exit and the program to terminate. Next, the layout of the frame is set to a BorderLayout
; this tells Swing how to arrange the components that will be added to the frame. A JLabel
is created for the string "Hello, world!" and the add(Component)
method inherited from the Container
superclass is called to add the label to the frame. The pack()
method inherited from the Window
superclass is called to size the window and lay out its contents, in the manner indicated by the BorderLayout
.
The main()
method is called by the JVM when the program starts. It instantiates a new Hello
frame and causes it to be displayed by calling the setVisible(boolean)
method inherited from the Component
superclass with the boolean parameter true
. Note that once the frame is displayed, exiting the main
method does not cause the program to terminate because the AWT event dispatching thread remains active until all of the Swing top-level windows have been disposed.
No comments:
Post a Comment