列表组件(JList列表框和JComboBox下拉列表框组件)(简单代码例子实现)

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Main extends JFrame{
		public Main() {
			setBounds(200, 200, 500, 500);
			setDefaultCloseOperation(EXIT_ON_CLOSE);
			setVisible(true);
			
			Container c = getContentPane();
			c.setLayout(null);//绝对布局
			
			
			//第一部分列表框组件
			
			//第一种列表框
//			String items[] = {"数组元素1","数组元素2","数组元素3","数组元素4","数组元素5","数组元素6","数组元素7"};
//			JList<String> l = new JList<>(items);
//			JScrollPane s = new JScrollPane(l);//为列表框添加滚动条
//			s.setBounds(10, 10, 100, 100);//设定坐标和大小			
//			c.add(s);
			
			
			//第二种使用模型的列表框
			String items[] = {"数组元素1","数组元素2","数组元素3","数组元素4","数组元素5","数组元素6","数组元素7"};
			
			JList<String> l = new JList<>();//列表框组件
			
			DefaultListModel<String> model = new DefaultListModel<>();//列表框的数据模型
			for(String tmp:items) {//foreach方法遍历数组
				model.addElement(tmp);//向数据模型中添加数据
			}
//			model.addElement("添加新元素");//数据模型中添加新元素
			l.setModel(model);//列表载入数据模型
		
			/*
			 * SINGLE_SELECTION:单选
			 * SINGLE_INTERVAL_SELECTION:只能连续选择相邻的元素
			 * MULTIPLE_INTERVAL_SELECTION:随便选
			*/
			l.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);//设置选择模式(选择时,应该按住ctrl键,单点鼠标无效)

			JButton button = new JButton("打印");
			button.addActionListener(new ActionListener() {
				
				@Override
				public void actionPerformed(ActionEvent var1) {
					//获取列表框中所有选中的所有元素
					java.util.List<String> values = l.getSelectedValuesList();
					for(String temp : values) {
						System.out.println(temp);
					}
					System.out.println("_______end______");
				}
			});
			button.setBounds(200, 10, 60, 20);
			c.add(button);
				
			JScrollPane s = new JScrollPane(l);//为列表框添加滚动条
			s.setBounds(10, 10, 100, 100);//设定坐标和大小
			
			c.add(s);
			
			

			//第二部分下拉列表框组件
			
		 	//第一种下拉列表的方式
			/*JComboBox<String> b = new JComboBox<>();
			b.addItem("身份证");//下拉列表的添加数据
			b.addItem("学生证");
			b.addItem("工作证");
			b.setBounds(10, 10, 100, 21);//设定坐标(x,y)和大小(width,height)
			c.add(b);*/
			
			
			//第二种下拉列表的方式
			/*String items[] = {"数组元素1","数组元素2","数组元素3"};
			JComboBox<String> b = new JComboBox<>(items);//使用String添加下拉列表元素
			b.setBounds(10, 10, 100, 21);//设定坐标(x,y)和大小(width,height)
			c.add(b);*/
			
			
			//第三种下拉列表的方式
		/*	JComboBox<String> b = new JComboBox<>();
			String items[] = {"数组元素1","数组元素2","数组元素3"};
			ComboBoxModel cm = new DefaultComboBoxModel<>(items);//创建下拉列表模型
			b.setModel(cm);//向列表中添加数据模型
			
			JButton button = new JButton("打印");
			button.addActionListener(new ActionListener() {
				
				@Override
				public void actionPerformed(ActionEvent var1) {
					// TODO 自动生成的方法存根
					System.out.println("选中元素的索引:"+b.getSelectedIndex());//获取选中元素的索引
					System.out.println("选中的值:"+b.getSelectedItem());//获取选中的值
					
				}
			});
			button.setBounds(200, 10, 60, 20);
			c.add(button);
			
			b.setEditable(true);//是否可以编辑
			b.setBounds(10, 10, 100, 21);//设定坐标(x,y)和大小(width,height)
			c.add(b);*/
			
		}
	public static void main(String[] args) {
		new Main();
	}

}

在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值