0

i am trying to get the combo-box when a option is selected it does something like print some text but i dont know how to do it after hours of trying to figure it out.i know it has something to do with the event listener. New to java. Any help is appreciated.

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JComboBox;

public class Frame extends JFrame
{
    //Instance Variables.
     private static final int FRAME_WIDTH = 500;
     private static final int FRAME_HEIGHT = 400;


     public Frame()
     {
        Venue1();
        setSize(FRAME_WIDTH, FRAME_HEIGHT);
     }

     private void Venue1()
     {
         //String [] Venues = {"Elvis","Gorillaz", "Imagine Dragons","Michael Jackson"};

         JComboBox DropMenu = new JComboBox();
         DropMenu.addItem("Elvis");
         DropMenu.addItem("Gorillaz");
         DropMenu.addItem("Imagine Dragons");
         DropMenu.addItem("Michael Jackson");
         DropMenu.setEditable(false);
         DropMenu.setVisible(true);

         JPanel panel = new JPanel();
         JLabel label = new JLabel("Pick a venue");

         add(panel);
         panel.add(label);
         panel.add(DropMenu);

        ActionListener listener = new listener();
        DropMenu.addActionListener(listener);

     }//End of Venue Method.
}//End of class.

//Button Listeners

class listener implements ActionListener
{
    public void actionPerformed(ActionEvent event)
    {

    }
}

    enter code here
MadProgrammer
  • 343,457
  • 22
  • 230
  • 366

2 Answers2

2
  • To get selected value from your JComboBox is simple as this :

DropMenu.getSelectedValue();

  • To get selection when changing the selection :

    MyItemListener actionListener = new MyItemListener();
    DropMenu.addItemListener(actionListener);
    
    class MyItemListener implements ItemListener {
        // This method is called only if a new item has been selected.
        public void itemStateChanged(ItemEvent evt) {
            JComboBox DropMenu = (JComboBox) evt.getSource();
            Object item = evt.getItem();
            if (evt.getStateChange() == ItemEvent.SELECTED) {
                // Item was just selected
            } else if (evt.getStateChange() == ItemEvent.DESELECTED) {
               // Item is no longer selected
            }
        }
    }
    
Elarbi Mohamed Aymen
  • 1,617
  • 2
  • 14
  • 26
1

In your ActionListener, you need to determine if the source of the event is a JComboBox, if it is, you can cast it and get the selectdValue

class listener implements ActionListener
{
    public void actionPerformed(ActionEvent event)
    {
        if (event.getSource() instanceof JComboBox) {
            JComboBox cb = (JComboBox)event.getSource();
            System.out.println(cb.getSelectedItem());
        }
    }
}

I strongly recommend having a look at:

MadProgrammer
  • 343,457
  • 22
  • 230
  • 366