Java 选择上的组合框

Java 选择上的组合框,java,swing,combobox,Java,Swing,Combobox,我正在尝试获取组合框,当选择一个选项时,它会像打印一些文本一样执行操作,但我不知道在几个小时的尝试后如何执行。我知道它与事件侦听器有关。java新手。感谢您的帮助 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.

我正在尝试获取组合框,当选择一个选项时,它会像打印一些文本一样执行操作,但我不知道在几个小时的尝试后如何执行。我知道它与事件侦听器有关。java新手。感谢您的帮助

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
  • 要从
    JComboBox
    中获取所选值,简单如下:
DropMenu.getSelectedValue()

  • 要在更改选择时获取选择,请执行以下操作:

    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
            }
        }
    }
    
      • 要从
        JComboBox
        中获取所选值,简单如下:
      DropMenu.getSelectedValue()

      • 要在更改选择时获取选择,请执行以下操作:

        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
                }
            }
        }
        

      在您的
      ActionListener
      中,您需要确定事件的来源是否是
      JComboBox
      ,如果是,您可以强制转换它并获取
      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());
              }
          }
      }
      
      我强烈建议您看看:


      在您的
      ActionListener
      中,您需要确定事件的来源是否是
      JComboBox
      ,如果是,您可以强制转换它并获取
      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());
              }
          }
      }
      
      我强烈建议您看看:


      感谢您的回复:)。如果我想要打印文本之类的内容,我会在if语句中输入哪些参数。类似于如果(SelctedValue==“Elvis”)我做了changes@JordanOLoughlin
      if(SelctedValue==“Elvis”)
      不是Java中比较
      String
      s的方式,您想使用更像
      if(“Elvis.equals(SelctedValue))
      我知道,但出于某种原因==有效?if(cb.getSelectedItem()==“Gorillaz”){System.out.println(“您选择了Gorillaz”);}@JordanOLoughlin您建议您查看此链接,谢谢您的回复:)。如果我想要打印文本之类的内容,我会在if语句中输入哪些参数。类似if(SelctedValue==“Elvis”)之类的内容,我做了changes@JordanOLoughlin
      if(SelctedValue==“Elvis”)
      不是Java中比较字符串的方式,你想使用更像
      的if(“Elvis.equals(selctedValue))
      我知道,但出于某种原因==有效?if(cb.getSelectedItem()==“Gorillaz”){System.out.println(“你已经选择了Gorillaz”)}@JordanOLoughlin你建议你看看这个链接