package com.java.charpter13;
import java.awt.Container;
import java.awt.FlowLayout;
import java.util.concurrent.locks.AbstractOwnableSynchronizer;
import javax.swing.AbstractListModel;
import javax.swing.ComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;
public class JComBoxModelTest extends JFrame{
private static final long serialVesionUID=1L;
JComboBox<String> jc=new JComboBox<>(new MycomboBox());
JLabel j1=new JLabel("请选择证件");
public JComBoxModelTest()
{
setSize(160, 180);
setVisible(true);
setTitle("在窗口中设置下拉列表 ");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Container cp=getContentPane();
cp.setLayout(new FlowLayout());
cp.add(j1);
cp.add(jc);
}
public static void main(String[] args) {
new JComBoxModelTest();
}
}
class MycomboBox extends AbstractListModel<String> implements ComboBoxModel<String>
{
String selecteditem=null;
String[] test={"身份证","军人证","学生证","工作证"};
@Override
public int getSize() {
// TODO Auto-generated method stub
return test.length;
}
@Override
public String getElementAt(int index) {
// TODO Auto-generated method stub
return test[index];
}
@Override
public void setSelectedItem(Object anItem) {
selecteditem=(String) anItem;
}
@Override
public Object getSelectedItem() {
// TODO Auto-generated method stub
return selecteditem;
}
public int getIndex() {
for (int i = 0; i < test.length; i++) {
if (test[i].equals(getSelectedItem()))
return i;
}
return 0;
}
}