Java 选择上的组合框
我正在尝试获取组合框,当选择一个选项时,它会像打印一些文本一样执行操作,但我不知道在几个小时的尝试后如何执行。我知道它与事件侦听器有关。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.
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@JordanOLoughlinif(SelctedValue==“Elvis”)
不是Java中比较String
s的方式,您想使用更像if(“Elvis.equals(SelctedValue))
我知道,但出于某种原因==有效?if(cb.getSelectedItem()==“Gorillaz”){System.out.println(“您选择了Gorillaz”);}@JordanOLoughlin您建议您查看此链接,谢谢您的回复:)。如果我想要打印文本之类的内容,我会在if语句中输入哪些参数。类似if(SelctedValue==“Elvis”)之类的内容,我做了changes@JordanOLoughlinif(SelctedValue==“Elvis”)
不是Java中比较字符串的方式,你想使用更像的if(“Elvis.equals(selctedValue))
我知道,但出于某种原因==有效?if(cb.getSelectedItem()==“Gorillaz”){System.out.println(“你已经选择了Gorillaz”)}@JordanOLoughlin你建议你看看这个链接