package swing;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.AbstractListModel;
import javax.swing.ComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;
/*
* 列表组件
* Swing中提供两种列表组件:下拉列表框 ,列表框
* 下拉列表框组件
* JComboBox类
* 常用构造方法
* public JComboBox()
* public JComboBox(ComboBoxModel dataModel)
* public JComboBox(Object[] arrayData)
* public JComboBox(Vector vector)
* JComboBox
* 在程序开发中,一般将下拉列表框中的项目分装为ComboBoxModel类型。
* ComboBoxModel为接口,它代表一般模型,可以自定义一个类实现该接口,
* 然后在初始化ComboBoxModel 接口类型,但是必须实现以下两种方法
* public void setSelectedItem(Object item):用于设置下拉列表框中的选中项
* public Object getSelectedItem():用于返回下拉列表框中的选中项
* 还可以继承AbstractMOdel类,该类也有两个操作下拉列表框的方法
* getSize():返回列表的长度
* getElementAt(int index):返回指定索引处的值
*
*/
public class JComboBoxModelTest exts JFrame{
JComboBox<String> jc=new JComboBox<>(new MyComboBox());
JLabel jl=new JLabel("请选择证件");
public JComboBoxModelTest(){
setSize(new Dimension(160, 180));
setVisible(true);
setTitle("在窗口中设置下拉列表框");
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
cp.add(jl);
cp.add(jc);
}
public static void main(String[] args) {
new JComboBoxModelTest();
}
class MyComboBox exts AbstractListModel<String> implements ComboBoxModel<String>{
String selecteditem=null;
String[] test= {"身份证","军人证","学生证","工作证"};
@Override
//根据索引返回值
public String getElementAt(int index) {
// TODO Auto-generated method stub
return test[index];
}
@Override
//返回下拉列表框中项目的数目
public int getSize() {
// TODO Auto-generated method stub
return test.length;
}
@Override
//获取下拉列表框中的项目
public Object getSelectedItem() {
// TODO Auto-generated method stub
return selecteditem;
}
@Override
//设置下拉列表框项目
public void setSelectedItem(Object item) {
// TODO Auto-generated method stub
selecteditem=(String)item;
}
public int getIndex() {
for (int i = 0; i < test.length; i++) {
if (test[i].equals(getSelectedItem()))
return i;
break;
}
return 0;
}
}
}
下拉列表框组件
下一篇:返回列表