列表框

  • 一、关键代码
  • 二、简单说明
  • 三、流程图
  • 四、源码
  • 一)源码A
  • 二)源码A的运行效果
  • 五、结语
  • 六、定位日期


一、关键代码

  • 创建列表框,选择元素的泛型(String)。
JList<String> jl_2=new JList<>();// 创建列表框

注意: 需要添加包类:import javax.swing.JList;// 列表框

二、简单说明

创建一个常规的窗口,窗口镶嵌容器。容器里添加列表框和按钮。使用按钮触发事件,以弹出信息框。信息框的内容为列表框中选择的内容。列表框可以使用模型的方法。

三、流程图













以触发运行效果




窗体

容器

其他组件

列表框

只能单选元素

只能选择相邻元素

可任意选择元素

按钮

数组元素

可选模型方法

另外再插入元素

数组元素

监听器

事件

信息框


四、源码

一)源码A

/*	【程序思想】
*	列表框

	窗体
	容器
	列表框
*/

import java.awt.Container;// 容器

import java.awt.event.ActionListener;// 动作监听
import java.awt.event.ActionEvent;// 动作事件

import javax.swing.JFrame;// 窗体
import javax.swing.JList;// 列表框
import javax.swing.JScrollPane;// 滚动面板
import javax.swing.DefaultListModel;// 列表框模型
import javax.swing.ListSelectionModel;// 线性选择模型
import javax.swing.JButton;// 按钮
import javax.swing.JOptionPane;// 信息框


class Demo{
	JFrame f=new JFrame();// 窗体
	Container c;// 容器

	/*
		way1
		窗体的基本属性
	*/
	void way1(){
		f.setBounds(400,200,500,400);// 坐标、尺寸
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 点×即关闭
		c=f.getContentPane();// 容器嵌入窗体
		c.setLayout(null);// 初始不设置布局

	}

	/*
		way2
		列表框的创建
		相关属性、功能
	*/
	void way2(){
		String items_1[]={"楼层1","楼层2","楼层3","楼层4","楼层5","楼层6"};// 字符串数组
		JList<String> jl_1=new JList<>(items_1);// 创建列表框,泛型:字符串
		JScrollPane jsp_1=new JScrollPane(jl_1);// 滚动面板
		
		jsp_1.setBounds(40,20,100,80);// 坐标、大小
		c.add(jsp_1);// 滚动面板添加到容器中

	}

	void way3(){
		String items_1[]={"楼层11","楼层12","楼层13","楼层14","楼层15","楼层16"};// 字符串数组
		
		DefaultListModel<String> model_1=new DefaultListModel<>();// 列表框的数据模型
		for(String tmp:items_1){
			model_1.addElement(tmp);// 向数组模型添加元素 Element(元素)
		}
		model_1.addElement("屋面层");// 向模型中继续添加元素,模型的好处如此
		
		JList<String> jl_2=new JList<>();// 创建列表框
		jl_2.setModel(model_1);// 列表框载入数据

		/*
			列表框选择模式
			SINGLE_SELECTION	单选,single(单一的),selection(选择)
			SINGLE_INTERVAL_SELECTION	只能选择相邻的元素,上一个和下一个,interval(间隔),
			MULTIPLE_INTERVAL_SELECTION	随便选择,也是默认的。multiple(多个的)
		*/
		//jl_2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);// selection(选择),mode(方式)

		JScrollPane jsp_2=new JScrollPane(jl_2);// 滚动面板
		jsp_2.setBounds(40,20,100,80);// 坐标、大小
		c.add(jsp_2);

		JButton btn_1=new JButton("way3窗体");// 以按钮触发事件用
		btn_1.setBounds(160,20,100,40);// 按钮坐标、尺寸
		// 给按钮添加动作监听
		btn_1.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg_0){
				String tmp_0="选择的楼层为:";
				// 获取列表框中的所以元素,values(值),selected(选择),util(工具包)
				java.util.List<String> values=jl_2.getSelectedValuesList();
				for(String tmp:values){
					tmp_0=tmp_0+"\n"+tmp;

				}
				JOptionPane.showMessageDialog(f,tmp_0+"\n---运行完毕---");
			}
		
		});

		c.add(btn_1);
	}

	public static void main(String[] args) {
		Demo d=new Demo();
		d.way1();// 窗体
		d.way2();// 列表框的属性

		Demo d_2=new Demo();
		d_2.way1();
		d_2.way3();// 列表框的属性,表现方法2

		d.f.setVisible(true);// 窗体可见
		d_2.f.setVisible(true);
	}
}

二)源码A的运行效果

  1. 默认运行效果,如下图:
  2. 程序编译有两个窗体,将最前面way3方法的窗体拉开,便可看到两个窗体,way2方法编译的窗体为左边的窗体,way3方法编译的窗体为右边的窗体。如下图:
  3. 在右边的窗体中,摁着“Ctrl”键,点选“楼层11”,“楼层12”,“楼层14”,点击“way3按钮”,运行效果如下:
  4. 在右边的窗体中,摁着“Ctrl”键,点选“楼层11”,“楼层13”,“屋面层”,点击“way3按钮”,运行效果如下:

五、结语

源码中几乎每行代码都有注释,直接看源码效果或许会更佳。学习无止境,那就努力吧。

六、定位日期

2022.5.2;22.23 源码,流程图的内容
2022.5.3;19:59