This post helps in understanding usage of JFrame class with an example
Swing toolkit categorizes components into 2 types. They are:
- Containers
- Controls
Containers allows Controls to be arranged on them. JPanel, JFrame and JDialog are few which are frequently used.
Controls are components like Buttons, labels, tables etc. These controls are arranged on containers using different layout managers.
All Swing class names starts with J stands for Java which symbolizes swing is pure java!
Layout Managers:
Few points about JFrame:
- JFrame is considered as a main window of the application.for almost all swing based applications
- All other controls and containers are created as child components of JFrame
- JFrama holds special components like Menu bar, Tool bar etc
Example program
2 import javax.swing.SwingUtilities;
3
4 /**
5 *
6 * Simple class to demonstrate JFrame container of swing toolkit
7 *
8 * @author Nagasharath
9 *
10 */
11public class FrameDemo extends JFrame {
12
13 private final String title = "It's all abt java!... ";
14
15 /**
16 * set properties of the main window. Title, size of frame and position/location
17 */
18 public FrameDemo() {
19 this.setTitle(title);
20 this.setSize(300, 200);
21 this.setLocationRelativeTo(null);
22 initComponents();
23 }
24
25 /**
26 * It is used in future articles for instantiating controls like buttons etc.
27 * left empty for now.
28 */
29 private void initComponents() {
30 }
31
32 public static void main(String[] args) {
33
34 Runnable r = () -> {
35 FrameDemo demo = new FrameDemo();
36 demo.setVisible(true);
37 };
38 SwingUtilities.invokeLater(r);
39 }
40}
41
Line 1: Our class FrameDemo extends JFrame hence gets all benefits that JFrame possess
Line 20: Sets the width 300 and height 200. How ever frame is re sizable at run time
Line 21: Puts the frame at the center of the desktop monitor
Line 36: Unless call to setVisible(true), frame can not be seen at all.
Line 38: It is always good practice to call setVisible(true) in invokeLater().
Output on Win 10:
The look and feel we see below is default which is same on all platforms
This Look and feel can be changed using UIManager class. We see it in coming posts.
No comments:
Post a Comment