Hi,
I have created a user defined class car and i am trying to add its objects in a combo box on a button click but i a m getting "Null Pointer Exception" when i am running this program. Following is my code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Car{
String carModel;
double price;
Car(String carModel1, double p){
carModel=carModel1;
price = p;
}
}
public class UseCar extends JFrame{
JComboBox<Car> cbox;
DefaultComboBoxModel<Car> model;
JFrame frame = new JFrame("Test");
private JButton button;
UseCar() {
frame.setSize(500,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
frame.add(panel);
button=new JButton("Hello");
panel.add(button);
cbox= new JComboBox<>();
panel.add( cbox);
pack();
MyActionListener listener=new MyActionListener(cbox, model); //added
button.addActionListener(listener);
frame.setVisible(true);
}
public static void main(String args[ ]) {
// Run the GUI construction in the Event-Dispatching thread for thread-safety
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new UseCar(); // Let the constructor do the job
}
});
}
}
class MyActionListener implements ActionListener{
MyActionListener(JComboBox<Car> cbox, DefaultComboBoxModel<Car> model){
Car car1 = new Car("2010", 300.0);
Car car2 = new Car("2011", 400.0);
Car car3 = new Car("2012", 500.0);
Car car4 = new Car("2013", 600.0);
Car car5 = new Car("2014", 700.0);
model.addElement(car1);
/*model.addElement(car2);
model.addElement(car3);
model.addElement(car4);
model.addElement(car5);
cbox.setModel(model);*/
}
public void actionPerformed (ActionEvent e) {
System.out.println("pressed button");
}
}
Following is my error message:
java UseCar
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at MyActionListener.<init>(UseCar.java:54)
at UseCar.<init>(UseCar.java:31)
at UseCar$1.run(UseCar.java:40)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Somebody please guide me.
Zulfi.