Java学习——69.组合框JComboBox
组合框组合框由一个文本行和一个列表框组成,表现为一个右边带向下箭头的文本行。
1、 JComboBox组合框类
JComboBox类声明如下:
public class JComboBox extends JComponent implements
ItemSelectable, ListDataListener, ActionListener,Accessible
{
public JComboBox()
public JComboBox(T items[])//由对象数组提供数据项
public void setEditable(boolean edit ) //是否可编辑,默认false
public Object getSelectedItem()//返回选中数据项对象
public void setSelectedItem(Object item) //设置选中项
public int getSelectedIndex()//返回选中数据项序号
public void setSelectedIndex(int i) //选中第i(≥0)项
public void addItem(T item)//添加数据项
public void removeItem(Object item)//删除数据项
public void removeItemAt(int i)//删除第i(≥0)项
public void removeAllItems()//删除所有项,触发动作事件
public void addActionListener(ActionListener listener)
}
2、组合框响应动作事件
组合框响应的是ActionEvent事件,其接口名为:ActionListener,接口中的方法只有一个actionPerformed(ActionEvent ev)。
3、示例
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class JComboBoxlearn extends JFrame implements ActionListener
{
private JComboBox combox;
private JTextField text;
public JComboBoxlearn()
{
super("组合框学习");
this.setVisible(true);
this.setSize(200, 100);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
String s[]={"云南","湖南"};//字符串
DefaultComboBoxModel model=newDefaultComboBoxModel(s);//组合框模型
combox=new JComboBox(model);//创建组合框
combox.addActionListener(this);//注册事件监听器
this.getContentPane().add(combox,"North");
text=new JTextField(10);
this.getContentPane().add(text, "South");
text.setEditable(false);
}
public void actionPerformed(ActionEvent ex)
{
if(combox.getSelectedItem().equals("云南")){
text.setText("您选择的省份是云南");
combox.addItem("广州");
}
elseif(combox.getSelectedIndex()==1){
text.setText("您选择的省份是湖南");
combox.addItem("北京");
}
}
public static void main(String args[])
{
new JComboBoxlearn();
}
}
其运行结果如下:
单击组合框,运行结果如下:
选中云南后,触发动作事件,为文本行设置文本:
同时为组合框添加项:广州,运行结果如下:
选中湖南项,触发动作事件,为文本行设置文本:
同时为组合框添加项,如下图所示: