I am creating dialog which populates the Combo box with list of project code , when I click specific item on Combo Box it brings the information from database and display on same dialog using jLabels. Sometimes I want to disable combo box I do removeAllItems and set jLabels empty string as well with checkbox and continue next step like that. When I enable again I populate combobox with same object but when I click on it , it doesn't click and create errors. When I code for removeAllItems it works fine.
Here is my code fragments
// My Dialog Class
/// Fields
MsSqlDbProperties searchcomboitem;
MsSqlDbProperties objcombo;
String combos;
Object comboitem ;
/// Constructor for my dialog called from another class
public myDialog(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
objcombo = new MsSqlDbProperties();
objcombo.populatecombo(this);
}
// Combo Box Item Clicked
private void jComboBox2ActionPerformed(java.awt.event.ActionEvent evt) {
System.out.println("Combo Item Selected");
comboitem = jComboBox2.getSelectedItem();
combos = comboitem.toString();
System.out.println(combos);
objcombo.SearchProject(this, combos);
}
// Disable Combo Box
private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {
if (jComboBox2.isEnabled()) {
jComboBox2.setEnabled(false);
this.jComboBox2.removeAllItems();
System.out.println(" Combo Disabled...");
} else {
System.out.println(" Combo Enabled...");
jComboBox2.setEnabled(true);
objcombo.populatecombo(this);
}
}
// MyDBproperties Class
/// Assume Connection Made here
/// my Search Project Method
public boolean SearchProject(PurchaseDialog pd , String s) {
boolean resp = false;
searchcon = connector();
try {
String Sqlse = "SELECT * FROM ProjectAccount WHERE ProjectCode = ? ";
PreparedStatement searchcmd = searchcon.prepareStatement(Sqlse);
searchcmd.setString(1,s);
ResultSet rst = searchcmd.executeQuery();
if (rst.next()) {
String add1 = rst.getString("ProjectName");
pd.projectName.setText(add1);
System.out.println("AFTER DISABLE");
System.out.println(add1);
String add2 = rst.getString("ProjectCode");
pd.projectCodelabel.setText(add2);
System.out.println(add2);
String add3 = rst.getString("StartDate");
pd.StartDate.setText(add3);
System.out.println(add3);
String add4 = rst.getString("EndDate");
pd.EndDate.setText(add4);
System.out.println(add4);
}
searchcmd.close();
searchcon.close();
resp = true;
} catch (Exception ex) {
System.out.println("Error " + ex.getMessage());
}
return resp;
}
// My populate combo Box Method
public boolean populatecombo(PurchaseDialog pdc) {
System.out.println("in populatecombo");
boolean resp = false;
populatecon = connector();
try {
String Sqlsc = "SELECT ProjectCode FROM ProjectAccount";
PreparedStatement combocmd = populatecon.prepareStatement(Sqlsc);
ResultSet rsc = combocmd.executeQuery();
while (rsc.next()) {
pdc.jComboBox2.addItem(rsc.getString("ProjectCode"));
}
combocmd.close();
populatecon.close();
} catch (Exception ex) {
System.out.println("Error " + ex.getMessage());
}
return resp;
}
Here is the error list
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at
ptakip.PurchaseDialog.jComboBox2ActionPerformed(PurchaseDialog.java:493) at
ptakip.PurchaseDialog.access$100(PurchaseDialog.java:14) at
ptakip.PurchaseDialog$2.actionPerformed(PurchaseDialog.java:148) at
javax.swing.JComboBox.fireActionEvent(JComboBox.java:1260) at
javax.swing.JComboBox.contentsChanged(JComboBox.java:1331) at
javax.swing.JComboBox.intervalRemoved(JComboBox.java:1351) at
javax.swing.AbstractListModel.fireIntervalRemoved(AbstractListModel.java:179) at
javax.swing.DefaultComboBoxModel.removeAllElements(DefaultComboBoxModel.java:174) at
javax.swing.JComboBox.removeAllItems(JComboBox.java:773) at
ptakip.PurchaseDialog.jCheckBox1ActionPerformed(PurchaseDialog.java:510) at
ptakip.PurchaseDialog.access$300(PurchaseDialog.java:14) at
ptakip.PurchaseDialog$4.actionPerformed(PurchaseDialog.java:165) at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at
javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:308) at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6505) at
javax.swing.JComponent.processMouseEvent(JComponent.java:3320) at
java.awt.Component.processEvent(Component.java:6270) at
java.awt.Container.processEvent(Container.java:2229) at
java.awt.Component.dispatchEventImpl(Component.java:4861) at
java.awt.Container.dispatchEventImpl(Container.java:2287) at
java.awt.Component.dispatchEvent(Component.java:4687) at
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at
java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at
java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at
java.awt.Container.dispatchEventImpl(Container.java:2273) at
java.awt.Window.dispatchEventImpl(Window.java:2719) at
java.awt.Component.dispatchEvent(Component.java:4687) at
java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735) at
java.awt.EventQueue.access$200(EventQueue.java:103) at
java.awt.EventQueue$3.run(EventQueue.java:694) at
java.awt.EventQueue$3.run(EventQueue.java:692) at
java.security.AccessController.doPrivileged(Native Method) at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at
java.awt.EventQueue$4.run(EventQueue.java:708) at
java.awt.EventQueue$4.run(EventQueue.java:706) at
java.security.AccessController.doPrivileged(Native Method) at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at
java.awt.EventQueue.dispatchEvent(EventQueue.java:705) at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:154) at
java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182) at
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) at
java.awt.EventQueue.dispatchEventImpl(EventQueue.java:733) at
java.awt.EventQueue.access$200(EventQueue.java:103) at
java.awt.EventQueue$3.run(EventQueue.java:694) at
java.awt.EventQueue$3.run(EventQueue.java:692) at
java.security.AccessController.doPrivileged(Native Method) at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at
java.awt.EventQueue.dispatchEvent(EventQueue.java:703) at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at
java.awt.EventDispatchThread.run(EventDispatchThread.java:91)