Help with java GUI- has error in main thread

Posted by jan on Stack Overflow See other posts from Stack Overflow or by jan
Published on 2010-12-23T15:07:08Z Indexed on 2010/12/24 18:54 UTC
Read the original article Hit count: 227

Filed under:
|
|

Hello guys,

Basically im trying to do a Insurance Application form in java. And it uses multiple JPanels in a JFrame.

-adding of JPanel into main program frame was done like this:

//jpCenterArea to hold jp1-jp7
jpCenterArea.add(jp1);
jpCenterArea.add(jp2);
jpCenterArea.add(jp3);
jpCenterArea.add(jp4); ...etc
********Add Jpanels to JFrame*****/
add(jpTitle, BorderLayout.NORTH);
add(jpCenterArea, BorderLayout.CENTER);
add(jpBottom, BorderLayout.SOUTH);

However, even though program can compile, it cannot be run. error as mentioned below:

Exception in thread "main" java.lang.NullPointerException
         at java.awt.Container.addImpl<Container.java:1045>                
         at java.awt.Container.add<Container.java:365>
         at TravelInsuranceApplication.<init>TravelInsuranceApplication.java:120>
         at TravelInsuranceApplication.main<TravelInsuranceApplication.java:154>

1 import javax.swing.*;
2 import java.awt.*;
3 public class TravelInsuranceApplication extends JFrame
4 {
5 //declare private variables
6 private JLabel jlblTitle, jlblName, jlblNRIC, jlblAdd, jlblPostal, jlblContact, jlblDOB, 7         jlblEmail, jlblPeriod;
8 private JLabel jlblDeparture, jlblDays, jlblZone, jlblPlan;
9        private JTextField jtfName, jtfIC, jtfAdd, jtfPostal, jtfContact, jtfEmail, jtfZone;
10 private JRadioButton jrbResident, jrbOffice, jrbDeluxe, jrbClassic, jrbAsia, jrbWorldwide;
11 private ButtonGroup bgContact, bgZone, bgPlan;
12 private JComboBox jcDay, jcMonth, jcYear;
13 private JButton jbtnSubmit, jbtnCalculate, jbtnClear;
14 private JPanel jpTitle,jp1, jp2, jp3, jp4, jp5, jp6, jp7, jpBottom, jpCenterArea;
15 String[] day = {"1", "2", "3"};
16 String[] month = {"january", "february"};
17 String[] year = {"1981", "1985", "1990", "1995"};
18 
19 //constructor and GUI development
20 public TravelInsuranceApplication()
21 {
22  setSize(500,200);
23  setTitle("Travel Insurance Application");
24  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
25  setLayout(new BorderLayout());
26  
27  //create ALL component objects/ 
28  jlblTitle = new JLabel("Travel Insurance Application: ");
29  jlblName = new JLabel("Name of Insured: ");
30  jlblNRIC = new JLabel("NRIC: ");
31  jlblAdd = new JLabel("Address: ");
32  jlblPostal = new JLabel("Postal Code: ");
33  jlblContact = new JLabel("Telephone: ");
34  jlblDOB = new JLabel("Date Of Birth: ");
35  jlblEmail = new JLabel("Email Address: ");
36  jlblPeriod = new JLabel("Period Of Insurance ");
37  jlblDeparture = new JLabel("Departure Date ");
38  jlblDays = new JLabel("How Many Days To Insure ");
39  jlblZone = new JLabel("Zone: ");
40  jlblPlan = new JLabel("Plan: ");
41  
42  jtfName = new JTextField(50);
43  jtfIC = new JTextField(15);
44  jtfAdd = new JTextField(50);
45  jtfPostal = new JTextField(15);
46  jtfContact = new JTextField(15);
47  jtfEmail = new JTextField(50);
48  jtfZone = new JTextField(100);
49  
50  jrbResident = new JRadioButton("Rseident/Pgr");
51  jrbOffice = new JRadioButton("Office/HP");
52  jrbAsia = new JRadioButton("Asia");
53  jrbAsia = new JRadioButton("Worldwide");
54  jrbDeluxe = new JRadioButton("Deluxe");
55  jrbClassic = new JRadioButton("Classic");
56  
57  jcDay = new JComboBox(day);
58  jcMonth = new JComboBox(month);
59  jcYear = new JComboBox(year);
60  
61  jbtnSubmit = new JButton("Submit");
62  jbtnCalculate = new JButton("Calculate");
63  jbtnClear = new JButton("Clear");
64  
65  /****create JPanels - jpTitle, JpCenterArea & jp2-jp8 , jpBottom + setLayout     66                  for ALL JPanels******/
67  jpTitle = new JPanel(new FlowLayout(FlowLayout.CENTER));
68  jpCenterArea = new JPanel(new FlowLayout());
69  jp1 = new JPanel(new FlowLayout());
70  jp2 = new JPanel(new FlowLayout(FlowLayout.CENTER));
71  jp3 = new JPanel(new FlowLayout());
72  jp4 = new JPanel(new FlowLayout());
73  jp5 = new JPanel(new FlowLayout());
74  jp6 = new JPanel(new FlowLayout(FlowLayout.CENTER));
75  jp7 = new JPanel(new FlowLayout(FlowLayout.CENTER));
76  jpBottom = new JPanel(new FlowLayout(FlowLayout.CENTER));
77  
78  
79  
80  
81  //add components to JPanels
82  jpTitle.add(jlblTitle);
83  
84  //jp1
85  jp1.add(jlblName);
86  jp1.add(jtfName);
87  jp1.add(jlblNRIC);
88  jp1.add(jtfIC);
89  
90  //jp2
91  jp2.add(jlblAdd);
92  jp2.add(jtfAdd);
93  jp2.add(jlblPostal);
94  jp2.add(jtfPostal);
95  
96  //jp3
97  jp3.add(jlblContact);
98  jp3.add(jtfContact);
99  jp3.add(jrbResident);
100  jp3.add(jrbOffice);
101  jp3.add(jlblDOB);
102  jp3.add(jcDay);
103  jp3.add(jcMonth);
104  jp3.add(jcYear);
105  
106  //jp4
107  jp4.add(jlblEmail);
108  jp4.add(jtfEmail);
109  
110  //jp5
111  jp5.add(jlblPeriod);
112  jp5.add(jlblDeparture);
113  jp5.add(jcDay);
114  jp5.add(jcMonth);
115  jp5.add(jcYear);
116  jp5.add(jlblDays);
117  jp5.add(jcDay);
118  
119  //jp6
120  jp6.add(jlblZone);
121  jp6.add(jrbAsia);
122  jp6.add(jrbWorldwide);
123  jp6.add(jlblPlan);
124  jp6.add(jrbDeluxe);
125  jp6.add(jrbClassic);
126  
127  //jp7
128  jp7.add(jtfZone);
129  
130  //jpCenterArea to hold jp1-jp7
131  jpCenterArea.add(jp1);
132  jpCenterArea.add(jp2);
133  jpCenterArea.add(jp3);
134  jpCenterArea.add(jp4);
135  jpCenterArea.add(jp5);
136  jpCenterArea.add(jp6);
137  jpCenterArea.add(jp7);
138  
139  //jpBottom
140  jpBottom.add(jbtnSubmit);
141  jpBottom.add(jbtnCalculate);
142  jpBottom.add(jbtnClear);
143  
144  /********Add Jpanels to JFrame*****/
145  add(jpTitle, BorderLayout.NORTH);
146  add(jpCenterArea, BorderLayout.CENTER);
147  add(jpBottom, BorderLayout.SOUTH);
148  
149  setVisible(true);
150  
151 
152  
153 }//end null constructor
154 public static void main(String[] args)
155 {
156  TravelInsuranceApplication travel = new TravelInsuranceApplication();
157  
158 }//end main
159
160 }//end class

© Stack Overflow or respective owner

Related posts about java

Related posts about gui