2015-06-01 3 views
0
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
at my.Posterordering.PosterorderingUI.combostyleActionPerformed(PosterorderingUI.java:394) 
at my.Posterordering.PosterorderingUI.access$500(PosterorderingUI.java:17) 
at my.Posterordering.PosterorderingUI$6.actionPerformed(PosterorderingUI.java:201) 
at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1258) 
at javax.swing.JComboBox.setSelectedItem(JComboBox.java:586) 
at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:622) 
at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(BasicComboPopup.java:834) 
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290) 
at java.awt.Component.processMouseEvent(Component.java:6525) 
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) 
at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(BasicComboPopup.java:498) 
at java.awt.Component.processEvent(Component.java:6290) 
at java.awt.Container.processEvent(Container.java:2234) 
at java.awt.Component.dispatchEventImpl(Component.java:4881) 
at java.awt.Container.dispatchEventImpl(Container.java:2292) 
at java.awt.Component.dispatchEvent(Component.java:4703) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898) 
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533) 
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462) 
at java.awt.Container.dispatchEventImpl(Container.java:2278) 
at java.awt.Window.dispatchEventImpl(Window.java:2750) 
at java.awt.Component.dispatchEvent(Component.java:4703) 
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) 
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.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86) 
at java.awt.EventQueue$4.run(EventQueue.java:731) 
at java.awt.EventQueue$4.run(EventQueue.java:729) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) 
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) 

Имея проблемы с моим кодом, когда я пытаюсь запустить его, это код, который у меня есть:Ошибки при выборе выпадающего элемента - JAVA

package my.Posterordering; 

/** 
* 
* @author 100103562 
*/ 
import javax.swing.*; 
import javax.swing.JButton; 
import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

public class PosterorderingUI extends javax.swing.JFrame { 
/** 
* Creates new form PosterorderingUI 
*/ 

Double total = null; 
    Double size = null; 
    Double quantity = null; 
    Double colour = null; 
    Double style = null; 
    int postage = 10; 



private void BtnHelpActionPerformed(java.awt.event.ActionEvent evt) {           
    // TODO add your handling code here: 
    JDialogExample jDialogExample = new JDialogExample(); 

}          

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
    // TODO add your handling code here: 
    dispose(); 
}           

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {           
    // TODO add your handling code here: 
}           

private void BtnHelpMouseClicked(java.awt.event.MouseEvent evt) {          
    // TODO add your handling code here: 
    PosterorderingUI newFrame = new PosterorderingUI(); 
    newFrame.setVisible(true); 
    jLabel15.setText("test"); 
}          

private void comboSizeActionPerformed(java.awt.event.ActionEvent evt) {           
    // TODO add your handling code here: 


    if (comboSize.getSelectedItem().equals("Large")){ 
lblpstprice.setText(String.valueOf(10.00)); 
int size = 10; 
lblTotal.setText(String.valueOf(size + postage)); 
    } 

else if (comboSize.getSelectedItem().equals("Small")){ 
      lblpstprice.setText(String.valueOf(3.00)); 

      int size = 3; 
      lblTotal.setText(String.valueOf(size + postage)); 
} 
    else if (comboSize.getSelectedItem().equals("Medium")){ 
      lblpstprice.setText(String.valueOf(6.00)); 
      int size = 6; 
      lblTotal.setText(String.valueOf(size + postage)); 
} 
     else { 
      lblpstprice.setText(String.valueOf("Please select a poster size")); 
      lblTotal.setText(String.valueOf("Error Occured")); 
} 
    }           

private void combostyleActionPerformed(java.awt.event.ActionEvent evt) {           
    // TODO add your handling code here: 
    if (combostyle.getSelectedItem().equals("Laminated")){ 
     lblstyleprice.setText(String.valueOf(5.00)); 
     int style = 5; 
     lblTotal.setText(String.valueOf(size + style + postage)); 
} 

else if (combostyle.getSelectedItem().equals("Glossy")){ 
      lblstyleprice.setText(String.valueOf(10.00)); 
      int style = 5; 
      lblTotal.setText(String.valueOf(size + style + postage)); 
} 
else if (combostyle.getSelectedItem().equals("Uncoated")){ 
      lblstyleprice.setText(String.valueOf(0.00)); 
      int style = 0; 
      lblTotal.setText(String.valueOf(size + style + postage)); 
} 

else { 
      lblstyleprice.setText(String.valueOf("Please select a poster style")); 
} 

}           

private void comboclrActionPerformed(java.awt.event.ActionEvent evt)  {           
    // TODO add your handling code here: 
    if (comboclr.getSelectedItem().equals("Black")){ 
    lblcolprice.setText(String.valueOf(2.00)); 
    int colour = 2; 
    lblTotal.setText(String.valueOf(size + style + colour + postage)); 
    } 

    else if (comboclr.getSelectedItem().equals("Red")){ 
    lblcolprice.setText(String.valueOf(3.00)); 
    int colour = 3; 
    lblTotal.setText(String.valueOf(size + style + colour + postage)); 
    } 

    else if (comboclr.getSelectedItem().equals("Orange")){ 
    lblcolprice.setText(String.valueOf(3.00)); 
    int colour = 3; 
    lblTotal.setText(String.valueOf(size + style + colour + postage)); 
    } 

    else if (comboclr.getSelectedItem().equals("Blue")){ 
    lblcolprice.setText(String.valueOf(3.00)); 
    lblTotal.setText(String.valueOf(size + style + colour + postage)); 
    int colour = 3; 
    } 

    else if (comboclr.getSelectedItem().equals("Yellow")){ 
    lblcolprice.setText(String.valueOf(3.00)); 
    int colour = 3; 
    lblTotal.setText(String.valueOf(size + style + colour + postage)); 
    } 

else { 
      lblcolprice.setText(String.valueOf("Please select a color")); 
      lblTotal.setText(String.valueOf("An error has occured")); 
}  

if (combostyle.getSelectedItem().equals(" ") || (comboSize.getSelectedItem().equals(" ")) || (comboclr.getSelectedItem().equals(" "))){ 
lblqtot.setText(String.valueOf("Please complete the form"));   
} 

else if (comboquant.getSelectedItem().equals(1)){ 
int number = Integer.parseInt(lblTotal.getText()); 
int price = 1; 
lblqtot.setText(String.valueOf(number * price)); 
lblTotal.setText(String.valueOf(size + style + colour + postage)); 
      } 

else if (comboquant.getSelectedItem().equals(2)){ 
int totals = Integer.parseInt(lblTotal.getText()); 
int quantity = 1; 
lblTotal.setText(String.valueOf(size + style + colour + postage)); 
lblqtot.setText(String.valueOf(totals * quantity)); 
      } 

else if (comboquant.getSelectedItem().equals(3)){ 
int totals = Integer.parseInt(lblTotal.getText()); 
int quantity = 2; 
lblTotal.setText(String.valueOf(size + style + colour + postage)); 
lblqtot.setText(String.valueOf(totals * quantity)); 
      } 

else if (comboquant.getSelectedItem().equals(4)){ 
int totals = Integer.parseInt(lblTotal.getText()); 
int quantity = 3; 
lblTotal.setText(String.valueOf(size + style + colour + postage)); 
lblqtot.setText(String.valueOf(totals * quantity)); 
      } 

else if (comboquant.getSelectedItem().equals(5)){ 
int totals = Integer.parseInt(lblTotal.getText()); 
int quantity = 4; 
lblTotal.setText(String.valueOf(size + style + colour + postage)); 
lblqtot.setText(String.valueOf(totals * quantity)); 
      } 

else if (comboquant.getSelectedItem().equals(6)){ 
int totals = Integer.parseInt(lblTotal.getText()); 
int quantity = 6; 
lblTotal.setText(String.valueOf(size + style + colour + postage)); 
lblqtot.setText(String.valueOf(totals * quantity)); 
      } 

else if (comboquant.getSelectedItem().equals(7)){ 
int totals = Integer.parseInt(lblTotal.getText()); 
int quantity = 7; 
lblTotal.setText(String.valueOf(size + style + colour + postage)); 
lblqtot.setText(String.valueOf(totals * quantity)); 
      } 

else if (comboquant.getSelectedItem().equals(8)){ 
int totals = Integer.parseInt(lblTotal.getText()); 
int quantity = 8; 
lblTotal.setText(String.valueOf(size + style + colour + postage)); 
lblqtot.setText(String.valueOf(totals * quantity)); 
      } 

else if (comboquant.getSelectedItem().equals(9)){ 
int totals = Integer.parseInt(lblTotal.getText()); 
int quantity = 9; 
lblTotal.setText(String.valueOf(size + style + colour + postage)); 
lblqtot.setText(String.valueOf(totals * quantity)); 
      } 

else if (comboquant.getSelectedItem().equals(10)){ 
int totals = Integer.parseInt(lblTotal.getText()); 
int quantity = 10; 
lblTotal.setText(String.valueOf(size + style + colour + postage)); 
lblqtot.setText(String.valueOf(totals * quantity)); 
      } 

else if (comboquant.getSelectedItem().equals(11)){ 
int totals = Integer.parseInt(lblTotal.getText()); 
int quantity = 11; 
lblTotal.setText(String.valueOf(size + style + colour + postage)); 
lblqtot.setText(String.valueOf(totals * quantity)); 
      } 

else if (comboquant.getSelectedItem().equals(12)){ 
int totals = Integer.parseInt(lblTotal.getText()); 
int quantity = 12; 
lblTotal.setText(String.valueOf(size + style + colour + postage)); 
lblqtot.setText(String.valueOf(totals * quantity)); 
      } 

else if (comboquant.getSelectedItem().equals(13)){ 
int totals = Integer.parseInt(lblTotal.getText()); 
int quantity = 13; 
lblTotal.setText(String.valueOf(size + style + colour + postage)); 
lblqtot.setText(String.valueOf(totals * quantity)); 
      } 

else if (comboquant.getSelectedItem().equals(14)){ 
int totals = Integer.parseInt(lblTotal.getText()); 
int quantity = 15; 
lblTotal.setText(String.valueOf(size + style + colour + postage)); 
lblqtot.setText(String.valueOf(totals * quantity)); 

       } 

else if (comboquant.getSelectedItem().equals("15")){ 
int totals = Integer.parseInt(lblTotal.getText()); 
int quantity = 15; 
lblTotal.setText(String.valueOf(size + style + colour + postage)); 
lblqtot.setText(String.valueOf(totals * quantity)); 

       } 



}      

Я надеюсь, что код достаточно легко понять, (немного грустно!) У меня такая ошибка, когда я выбираю что-нибудь в поле со списком плакатов. Поле Размер плаката отлично работает, поэтому я немного в тупике! Пожалуйста, со мной тоже, я в настоящее время изучаю Java как студента, и я НЕ испытываю этого языка. Я медленно подбираю его, хотя! :)

+0

Вам нужно уменьшить ваш код, большинство людей не прочитает все это. Выясните, в какой строке происходит ошибка (выглядит как 394) и размещайте соответствующий код оттуда. (Мы не можем видеть номера строк из того, что вы опубликовали). – Avantol13

+0

Приношу свои извинения, я сделаю это в ближайшее время, как только я заставлю свой ноутбук обратно в сети (у которого есть код). Приношу извинения за доставленные неудобства! –

ответ

0

Его трудно сказать, учитывая этот большой блок кода. Если бы я должен был догадаться, что это из-за них:

else if (comboquant.getSelectedItem().equals(1)){ 
int number = Integer.parseInt(lblTotal.getText()); 
int price = 1; 
lblqtot.setText(String.valueOf(number * price)); 
lblTotal.setText(String.valueOf(size + style + colour + postage)); 
      } 

Я думаю, что вам нужно, чтобы он начинается с 0, а не 1, что приведет к Null Pointer Exception: else if (comboquant.getSelectedItem().equals(0)){

+0

Никогда даже не думал об этом, хорошо заметил. –

1

Ваш Double size всегда нуль , Вы не устанавливаете его в методе combostyleActionPerformed(), но пытаетесь использовать его в сумме

+0

int size = 10; --- Разве это не там, где оно установлено? (Извините, новый (ish) для java!) –

+0

он установлен в размере, и он локальный. поэтому невозможно получить доступ к действию стиля – StanislavL

+0

Ahhh, это проблема, любая идея, как я мог бы это исправить, пожалуйста @StanislavL –

Смежные вопросы