import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

/**
 * Create a window with select boxes
 * Retrieve the value that the client selected
 *
 */

public class HandleItem2 extends JFrame implements ItemListener {

    JLabel             selDate  = new JLabel("Select a Date:");
    JComboBox<Integer> dayBox   = new JComboBox<Integer>();				//using Generics
    JComboBox<String>  monthBox = new JComboBox<String>();
    JComboBox<Integer> yearBox  = new JComboBox<Integer>();
    JLabel             result   = new JLabel();
    
    String day;
    String month;
    String year;

    String[ ] mths = {"Jan","Feb","Mar","Apr","May","Jun",
                      "Jul","Aug","Sep","Oct","Nov","Dec"};

    public static void main(String[] args) {

        HandleItem2 date = new HandleItem2();
    }

    public HandleItem2() {

        super("Select a Date");
        setSize(300, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel pane = new JPanel(); 
 
        for (int i = 1; i <= 31; i++)
            dayBox.addItem(i);         //add to date drop down menu
        for (int i = 0; i < 12; i++)
            monthBox.addItem("" + mths[i]); //add to month drop down menu
        for (int i = 2010; i < 2025; i++)
            yearBox.addItem(i);        //add to year drop down menu

        pane.add(selDate);
        pane.add(dayBox);
        pane.add(monthBox);
        pane.add(yearBox);
        pane.add(result);

        pane.setLayout(new FlowLayout(FlowLayout.LEFT));

        setContentPane(pane);
        setVisible(true);                 

        dayBox.addItemListener(this);       //register event handlers
        monthBox.addItemListener(this);
        yearBox.addItemListener(this);
    }

//---------------------------------------------------------------------------
//  Event Handler
//---------------------------------------------------------------------------

    public void itemStateChanged(ItemEvent evt) {

        Object source = evt.getSource();        //which object caused the event

        if (source == dayBox) {
            Object dayPick = evt.getItem();
            day            = dayPick.toString();
        }
        if (source == monthBox) {
//          Object mthPick = evt.getItem();
//          month          = mthPick.toString();
            month = (String) evt.getItem();     //shorter way to do same thing
        }
        if (source == yearBox) {
            Object yearPick = evt.getItem();
            year            = yearPick.toString();     
        }

        if (day != null && month != null && year != null)
            result.setText("You Selected: " + month + ", " + day + " " + year);
    }
}