0

I can't seem to get my actionPerformed method to working properly. Any help appreciated, thanks.
here is AwardingBody class

public abstract class AwardingBody {
    protected String message = "Congratulations you are a winner";

    public String getMessage(){
        return message;
    }

public abstract Prize getPrize(int prize);  

}


here is one of the prize subtypes

public class GoldMedal extends Medal{

    @Override
    public ImageIcon getIcon() {
        return new ImageIcon("goldMedal.jpg");
    }

}

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.*;


public class AwardsGUI extends JFrame implements ActionListener{
    AwardingBody award;
    JPanel panel, comboPanel;
    JTextField text;
    JLabel label;
    JComboBox<String> placeBox, awardingBodyBox;
    String [] places = {"Choose place", "First", "Second", "Third"};
    String [] awardingBodies = {"Select", "Athletics", "HorseShow"};

    public AwardsGUI(){
        panel = new JPanel();
        panel.setLayout(new BorderLayout());
        label = new JLabel();
        text = new JTextField(20);
        comboPanel = new JPanel();
        comboPanel.setLayout(new GridLayout(1,2));
        placeBox = new JComboBox<String>(places);
        placeBox.addActionListener(this);
        awardingBodyBox = new JComboBox<String>(awardingBodies);
        awardingBodyBox.addActionListener(this);
        comboPanel.add(placeBox);
        comboPanel.add(awardingBodyBox);

        panel.add(text, BorderLayout.NORTH);
        panel.add(label, BorderLayout.CENTER);
        panel.add(comboPanel, BorderLayout.SOUTH);

        this.add(panel);
        setSize(300,300);
        setVisible(true);
    }

    public static void main(String [] args){
        new AwardsGUI();
    }

    public void actionPerformed(ActionEvent e) {
        if(placeBox.getSelectedItem().equals("First") && awardingBodyBox.getSelectedItem().equals("Athletics")){
            award = new AthleticsAwardingBody();
            text.setText(award.getMessage());
            label.setIcon(award.getPrize(1).getIcon());
        }
        else if(placeBox.getSelectedItem().equals("Second") && awardingBodyBox.getSelectedItem().equals("Athletics")){
            award = new AthleticsAwardingBody();
            text.setText(award.getMessage());
            label.setIcon(award.getPrize(2).getIcon());
        }
        else if(placeBox.getSelectedItem().equals("Third") && awardingBodyBox.getSelectedItem().equals("Athletics")){
            award = new AthleticsAwardingBody();
            text.setText(award.getMessage());
            label.setIcon(award.getPrize(3).getIcon());
        }
        else if(placeBox.getSelectedItem().equals("First") && awardingBodyBox.getSelectedItem().equals("HorseShow")){
            award = new HorseShowAwardingBody();
            text.setText(award.getMessage());
            label.setIcon(award.getPrize(1).getIcon());
        }
        else if(placeBox.getSelectedItem().equals("Second") && awardingBodyBox.getSelectedItem().equals("HorseShow")){
            award = new HorseShowAwardingBody();
            text.setText(award.getMessage());
            label.setIcon(award.getPrize(2).getIcon());
        }
        else if(placeBox.getSelectedItem().equals("Third") && awardingBodyBox.getSelectedItem().equals("HorseShow")){
            award = new HorseShowAwardingBody();
            text.setText(award.getMessage());
            label.setIcon(award.getPrize(3).getIcon());
        }
    }




}

and the Exception is

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at AwardsGUI.actionPerformed(AwardsGUI.java:50)
    at javax.swing.JComboBox.fireActionEvent(Unknown Source)
    at javax.swing.JComboBox.setSelectedItem(Unknown Source)
    at javax.swing.JComboBox.setSelectedIndex(Unknown Source)
    at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(Unknown Source)
    at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$500(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)
codester124
  • 31
  • 1
  • 6

0 Answers0