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() {
@Override
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
System.out.println("打印选择项:"+mChoice.getSelectedItem());
}
});
mChoice.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent e) {
// TODO Auto-generated method stub
System.out.println("Choice 被点击");
}
@Override
public 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() {
@Override
public void itemStateChanged(ItemEvent e) {
// 处理选中的状态
if (e.getStateChange() == ItemEvent.SELECTED) {
System.out.println("选中: " + comboBox.getSelectedIndex() + " = " + comboBox.getSelectedItem());
}
}
});
comboBox.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent e) {
// TODO Auto-generated method stub
System.out.println("comboBox 被点击");
}
@Override
public 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() {
@Override
public void valueChanged(ListSelectionEvent e) {
// System.out.println(mList.getSelectedValue());
// 获取所有被选中的选项索引
int[] indices = mList.getSelectedIndices();
// 获取选项数据的 ListModel
ListModel<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() {
@Override
public 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() {
@Override
public void valueChanged(ListSelectionEvent e) {
// System.out.println(mList.getSelectedValue());
// 获取所有被选中的选项索引
int[] indices = mList.getSelectedIndices();
// 获取选项数据的 ListModel
ListModel<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() {
@Override
public void actionPerformed(ActionEvent e) {
// 下拉框事件
String drop = mTesterDrop.getText().toString();
if (drop.equals("︾")) {
mList.setVisible(true);
mTesterDrop.setText("︽");
} else {
mTesterDrop.setText("︾");
mList.setVisible(false);
}
}
});