Java 下拉框JComboBox & Choice & JList

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);
				}
			}
		});

  • 4
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值