1、java.awt.Choice :
方法接口:
//下拉按钮点击事件public void addFocusListener(new FocusListener())//下拉列表监视器public void addItemListener(ItemListener l)//向下拉列表中增加一个名为s的选项public void add(String s)://将名为s的选项插入到下拉列表的指定位置index处,index从0开始递增public void insert(String s,int index)//返回下拉列表中选项的总数public int getItemCount()//返回下拉列表中被选中的选项的名字public String getSelectedItem()//返回下拉列表中被选中的选项的索引,索引从0开始public int getSelectedIndex()//删除下拉列表中名为s的选项;如果有多个选项的名称都为s,就将索引值最小的选项删除public void remove(String s) //删除索引为index的选项public void remove(int index)//删除下拉列表中的所有选项public void removeAll()//将名称为s的选项设置为选中状态;如果下拉列表中有多个名称都为s,则将其中索引值最小的设置为选中状态public void select(String s)//将下拉列表中索引值为index的选项设置为选中状态public void select(int index)
使用:
// 选择下拉框private Choice mChoice = new Choice();
mChoice.setBounds(80, 160, 200, 60);mChoice.add("a");mChoice.add("b");mChoice.add("c");mChoice.add("d");mChoice.add("e");add(mChoice);mChoice.addItemListener(new ItemListener() {@Overridepublic void itemStateChanged(ItemEvent e) {// TODO Auto-generated method stubSystem.out.println("打印选择项:"+mChoice.getSelectedItem());}});mChoice.addFocusListener(new FocusListener() {@Overridepublic void focusLost(FocusEvent e) {// TODO Auto-generated method stubSystem.out.println("Choice 被点击");}@Overridepublic void focusGained(FocusEvent e) {// TODO Auto-generated method stub}});
2、javax.swing.JComboBox
接口方法:
// 设置选中的索引
void setSelectedIndex(int index)// 获取当前选中的索引
int getSelectedIndex()// 获取当前选中的数据项
Object getSelectedItem()// 设置选项数据模型
void setModel(ComboBoxModel<?> model)// 通过 model.getElementAt(int index) 和 model.getSize()
// 可分别 获取指定索引的选项数据 和 选项数量。
ComboBoxModel<?> getModel()// 添加选项选中状态改变的监听器
void addItemListener(ItemListener listener)
//下拉按钮点击事件public void addFocusListener(new FocusListener())// 设置下拉列表框是否可编辑,默认不可编辑。
void setEditable(boolean flag)
①、定义
// 需要选择的条目String[] listData = new String[]{"A", "B", "C", "D", "E"};// 创建一个下拉列表框public JComboBox<String> comboBox = new JComboBox<String>(listData);
②、调用:
comboBox.setBounds(80, 280, 200, 40);// 设置下拉列表框是否可编辑,默认不可编辑comboBox.setEditable(true);add(comboBox);// 添加条目选中状态改变的监听器comboBox.addItemListener(new ItemListener() {@Overridepublic void itemStateChanged(ItemEvent e) {// 处理选中的状态if (e.getStateChange() == ItemEvent.SELECTED) {System.out.println("选中: " + comboBox.getSelectedIndex() + " = " + comboBox.getSelectedItem());}}});comboBox.addFocusListener(new FocusListener() {@Overridepublic void focusLost(FocusEvent e) {// TODO Auto-generated method stubSystem.out.println("comboBox 被点击");}@Overridepublic void focusGained(FocusEvent e) {// TODO Auto-generated method stub}});
3、javax.swing.JList
接口:
// 以数组形式设置选项数据,内部将自动封装成 ListModel
void setListData(Object[] listData)// 以集合形式设置选项数据,内部将自动封装成 ListModel
void setListData(Vector<?> listData)// 直接设置选项数据的 ListModel
void setModel(ListModel<?> model)//通过 listModel.getElementAt(int index) 和 listModel.getSize()
// 获取指定索引的选项数据 和 选项数量。
ListModel<?> getModel()
①、定义
String[] listData = new String[]{"A", "B", "C", "D", "E"};//下拉列表public JList<String> mList = new JList<String>();
②、使用
mList.setBounds(410, 360, 150, 100);mList.setListData(listData);add(mList);// 添加选项选中状态被改变的监听器mList.addListSelectionListener(new ListSelectionListener() {@Overridepublic void valueChanged(ListSelectionEvent e) {
// System.out.println(mList.getSelectedValue());// 获取所有被选中的选项索引int[] indices = mList.getSelectedIndices();// 获取选项数据的 ListModelListModel<String> listModel = mList.getModel();// 输出选中的选项for (int index : indices) {System.out.println("选中: " + index + " = " + listModel.getElementAt(index));}}});// 设置默认选中项
// mList.setSelectedIndex(1);
4、自定义组合拳
// 需要选择的条目String[] listData = new String[] { "A", "B", "C", "D", "E" };// 下拉列表public JList<String> mList = new JList<String>();// 下拉按钮public JButton mTesterDrop = new JButton("︾");private Label mTheTester = new Label("测试人:", Label.CENTER);public static JTextField sTheTester = new JTextField("");
②、使用
// 测试人mTheTester.setBounds(350, 320, 60, 40);mTheTester.setFont(font);add(mTheTester);// 设置编辑框的位置sTheTester.setBounds(410, 320, 150, 40);// 输入的文字居中sTheTester.setHorizontalAlignment(JTextField.CENTER);add(sTheTester);// 对边框内容的实时监听sTheTester.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String mTester = sTheTester.getText().toString();if (mTester.isEmpty()) {JOptionPane.showMessageDialog(sTheTester, "测试人不能为空,请仔细填写!","错误", JOptionPane.ERROR_MESSAGE);return;}// 进入测试System.out.println(listData.length);}});mList.setBounds(410, 360, 150, 100);mList.setListData(listData);add(mList);// 添加选项选中状态被改变的监听器mList.addListSelectionListener(new ListSelectionListener() {@Overridepublic void valueChanged(ListSelectionEvent e) {// System.out.println(mList.getSelectedValue());// 获取所有被选中的选项索引int[] indices = mList.getSelectedIndices();// 获取选项数据的 ListModelListModel<String> listModel = mList.getModel();// 输出选中的选项for (int index : indices) {System.out.println("选中: " + index + " = "+ listModel.getElementAt(index));sTheTester.setText(listModel.getElementAt(index));mTesterDrop.setText("︾");mList.setVisible(false);}}});// 设置默认选中项// mList.setSelectedIndex(1);mList.setVisible(false);// 开始测试 按钮mTesterDrop.setBounds(560, 320, 50, 40);mTesterDrop.setBackground(Color.LIGHT_GRAY);add(mTesterDrop);mTesterDrop.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 下拉框事件String drop = mTesterDrop.getText().toString();if (drop.equals("︾")) {mList.setVisible(true);mTesterDrop.setText("︽");} else {mTesterDrop.setText("︾");mList.setVisible(false);}}});