JList基本用法

swing中JList控件使用:每一项以 图片+文字(文字在图片的下面) 的形式显示并且在水平方向排列 最近研究了一下java swing中jlist控件的使用方式。要达到的效果如标题,要实现这个功能,重点在一下几个方面: 需要改变JList的cellRender来支持对图片的显示,默认的cellRender只会显示文本字符串设置Jlist的每一项的显示方向为horizon设置每一项选中后的背景 阅读详情

JList是客户端还算比较常见的组件,偶尔也用得到,值得一学。

从API可以看出,JList的构造方法有四种


1、空的构造方法将创建一个空白的JList

2、以对象数组的构造方法创建JList(Object[] listData),可以看出参数是对象形式,可以放入实体对象。下面用字符串数组举例

public class t {
	public static void main(String[] args) {
		JFrame f = new JFrame();
		f.setSize(600, 500);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		JPanel panel = new JPanel();
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setPreferredSize(new Dimension(200,100));
		//以数组构造方法创建
		String[] str = {"aa","bb","cc","dd","ee","ff","gg"};
		final JList jList = new JList(str);
		jList.addListSelectionListener(new ListSelectionListener(){
			@Override
			public void valueChanged(ListSelectionEvent e) {
				if(!jList.getValueIsAdjusting()){	//设置只有释放鼠标时才触发
					System.out.println(jList.getSelectedValue());
				}
			}
		});
		
		
		scrollPane.setViewportView(jList);
		panel.add(scrollPane);
		f.getContentPane().add(panel);
		f.setVisible(true);
	}
}

3、以向量的方式创建JList,其实Vector和数组属于一个类型的,道理同上。

4、以ListModel方式创建JList,这个才是重点。数据模型顾名思义是负责显示数据的,也就是说JList的数据都是从这个模型里取的,数据模型在swing中是比较经典的用法,很多重要的组件都有对应的数据模型model。

数据模型分为两种,一种是继承AbstractListModel,一种是DefaultListModel

public class t {
	public static void main(String[] args) {
		JFrame f = new JFrame();
		f.setSize(600, 500);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		JPanel panel = new JPanel();
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setPreferredSize(new Dimension(200,100));
		//以数据模型构造方法创建
		final JList jList = new JList(new MyListModel());
		jList.addListSelectionListener(new ListSelectionListener(){
			@Override
			public void valueChanged(ListSelectionEvent e) {
				if(!jList.getValueIsAdjusting()){	//设置只有释放鼠标时才触发
					System.out.println(jList.getSelectedValue());
				}
			}
		});
		
		
		scrollPane.setViewportView(jList);
		panel.add(scrollPane);
		f.getContentPane().add(panel);
		f.setVisible(true);
	}
}
//列表数据模型
class MyListModel extends AbstractListModel{

	@Override
	public Object getElementAt(int index) {
		// TODO Auto-generated method stub
		return index;
	}
	
	@Override
	public int getSize() {
		// TODO Auto-generated method stub
		return 100;
	}
}
public class t {
	public static void main(String[] args) {
		JFrame f = new JFrame();
		f.setSize(600, 500);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		JPanel panel = new JPanel();
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setPreferredSize(new Dimension(200,100));
		final DefaultListModel d = new DefaultListModel();//只有默认的模型有添加/删除方法
		d.addElement("aa");
		d.addElement("bb");
		final JList jList = new JList(new MyListModel());
		jList.addListSelectionListener(new ListSelectionListener(){
			@Override
			public void valueChanged(ListSelectionEvent e) {
				if(!jList.getValueIsAdjusting()){	//设置只有释放鼠标时才触发
					System.out.println(jList.getSelectedValue());
				}
			}
		});
		
		
		scrollPane.setViewportView(jList);
		panel.add(scrollPane);
		f.getContentPane().add(panel);
		f.setVisible(true);
	}
}




JList Java:创建、修改和使用列表组件 在Java中,JList是一个常用的Swing组件,用于显示和操作列表数据。本文将介绍如何创建、修改和使用JList组件,并提供相应的源代码示例。 阅读详情

相关推荐

JList多选值的获取

JList多选值的获取, 由JList组件实现的列表框有3种选取模式,设置方法为通过JList类的setSelectionMode(int selectionMode)方法,该方法的入口参数可以通过ListSelectionModel类中的静态常量设置。

JList:列表框组件

记录总结

QQ418579986的博客 1346

FPGA防抄板实战:如何利用Xilinx芯片的“身份证”(DNA)实现你的加密锁?

本文深入探讨了如何利用Xilinx FPGA芯片的DNA(Device Native Authentication)功能实现硬件级加密保护,防止设计被抄袭。文章详细解析了DNA的物理实现、获取方式,并提供了从DNA到加密密钥的转换方法,以及构建商业级加密防护系统的实战方案。通过JTAG和原语两种读取方式的对比,帮助开发者选择最适合的方案。

weixin_42548829的博客 383

Java的 JList

默认情况下,JList会使用toString()方法来显示列表项。如果想要自定义列表项的显示方式,你可以通过设置自定义的单元格渲染器来实现。接口允许你控制列表项的显示。@Override} else {在这个例子中,类实现了接口并且可以自定义项的外观。当列表项被渲染时,方法会被调用。默认情况下,JList使用toString()方法来渲染列表项。在这个例子中,我们自定义了列表渲染器来改变列表项的显示方式。

weixin_63490470的博客 2688

1.14、基于NARX神经网络的磁悬浮建模(matlab)

数据准备:首先,需要准备用于训练和测试的磁悬浮系统的输入和输出数据,包括磁力、电流、位置、速度等信息。数据可以被保存在MATLAB的数据文件中,并加载到工作空间中。使用MATLAB的神经网络工具箱,创建一个NARX神经网络。需要定义网络的层次结构、节点数、激活函数等参数。通常,NARX网络包括自回归层和外部输入层。数据预处理:对加载的数据进行预处理,包括去除噪声、归一化处理等操作,以确保数据质量和网络训练的稳定性。使用MATLAB的训练函数,如trainlm或者trainbr,对NARX神经网络进行训练。

XU157303764的博客 1998

改进的主动轮廓模型实现图像分割

主动轮廓模型的优点在于可以自适应地调整轮廓形状和位置,适用于不同形状和大小的目标分割。改进的主动轮廓模型是一种有效的图像分割方法,能够适应不同场景下的图像分割需求。改进的主动轮廓模型涉及到许多参数,如模型参数、分割参数、权值系数等,这些参数的调整也会直接影响到分割结果。本文将介绍一个改进的主动轮廓模型,该模型可以实现对图像进行有效的分割。改进的主动轮廓模型是在传统的主动轮廓模型基础上进行的改进。和传统的模型相比,改进的主动轮廓模型加入了外部力和内部力,能够更好地适应复杂场景下的图像分割。

qq_39605374的博客 294

博客摘录「 JList基本用法」2023年5月23日

获取多个值使用:jList.getSelectedValuesList()

m0_64733451的博客 188

GameFramework框架详解之 DataTable配置表模块

一.前言: DataTable模块是项目的配置表模块,配置表一般是从excel导出csv/json/xml格式的,之所以是excel作为源文件,原因是因为策划同学使用配表最方便。然后一键导出到项目中,除了csv/json/xml配置文件外,一般还会伴随着导出配置的实体类,这样研发同学就可以使用了。GameFramework的DataTable模块也是秉持着这种一贯的策略来实现的。 二.DataRow DataRow在excel数据表中,对应的是一行数据,而在代码中对应的其实就是一条数据对象。 接口IData

TxNet 4726

swing 中的JList的增加和删除

package list.demolist;import java.awt.BorderLayout;import java.awt.Dimension;import javax.swing.JFrame;import javax.swing.JPanel;import java.awt.*;import javax.swing.JLabel;import javax.swing.JList;

平静的学习 5172

硬核反坑!YOLOv5训练避坑指南:根治梯度消失、不收敛、检测漏框三大核心问题(附实战代码+调优清单)

数据是基础,超参数是关键,模型是工具,训练策略是保障。梯度消失、不收敛、检测漏框这三大问题,本质上都是“数据-模型-训练”不匹配的结果。梯度消失/爆炸:优先调整学习率策略+梯度裁剪,其次优化模型结构;训练不收敛:优先清洗数据集,其次调优超参数,最后检查配置文件;检测漏框:优先重新聚类锚框,其次增强浅层特征,最后调整推理参数。YOLOv5训练的最高境界,不是调参,而是让数据、模型、训练策略三者完美匹配。按本文的方法反坑,你的YOLOv5训练一定能一次成功!🚀。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 233

仿真学习系列(四十一):Sigrity仿真之PDN阻抗提取

电源分配网络(Power Distribution Network,简称PDN)是电子系统中至关重要的部分,主要用于将电源从电源输入端传输到各个组件。PDN的设计质量直接影响到系统的电源完整性和信号稳定性,尤其是在高速设计中,PDN的阻抗特性对电源噪声、地弹(ground bounce)和电源完整性(Power Integrity,简称PI)具有重要影响。

案例文章,高速信号 1133

java jlist 添加,JList使用示例,向JList中添加行,示例jlist,JList使用示例,向J

JList使用示例,向JList中添加行,示例jlist,JList使用示例,向JJList使用示例,向JList中添加行,如下示例代码package cn.outofmemory.study;import javax.swing.*;import java.awt.event.*;import java.awt.*;import java.util.*;public class ClearJLi...

weixin_39567943的博客 421

DSShop移动商城网店系统 反序列化RCE漏洞复现

DSShop单店铺移动商城网店系统的getCartList方法的cart参数存在php反序列化漏洞,攻击者可以通过漏洞执行任意代码,获取服务器权限。

0xSec 1471

JList的setSelectionModel()

package JAVA_2; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JScr

MyHeaven7的博客 1958

ANSYS2022R1——安装源文件下载和安装教程——软件管家

14.当提示输入安装目录:#3时,①点击【浏览】,②选安装包解压后的【ANSYS2022R1_WINX64_Disk2】文件夹中【ANSYS2022R1_WINX64_Disk3】文件夹,③点击【选择文件夹】,④点击【OK】。12.当提示输入安装目录:#2时:①点击【浏览】,②选安装包解压后的【ANSYS2022.R1(64bit)】文件夹中的【ANSYS2022R1_WINX64_Disk2】文件夹,③点击【选择文件夹】,④点击【OK】。】②点击【OK】③点击【OK】。

qq_15963745的博客 2325

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

e777. 获得JList组件的所有项

// Create a list String[] items = {"A", "B", "C", "D"}; JList list = new JList(items); // Get number of items in the list int size = list.getModel().getSize(); // 4 ...

dengjuanshou7445的博客 980

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

swing JList中的字符数值数据清空

// 新建一个JList JList<String> list = new JList<String>();//赋一个空字符串String[] toBeStored=new String[0]; list.setListData(toBeStored);

xplBoBo的博客 1405

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

JList列表

/** * 功能:JList的练习 * 日期:2010年4月29日 */package 列表JList;import java.awt.*;import javax.swing.*;import java.awt.event.*;public class myJList extends JFrame{ JList jl=null; //创建一个JList对象 String items[]={"y

BruceBaoZhiqiang的专栏 756

Swing控件JList的使用

  1JList控件类似于一组单选按钮或复选框,通过点击自身来进行选定,也可以选择多个。    2创建一个Jlist实例(构造函数如下)     AJList();          B JList(Object[] obj);          C JList (Vector vect);          D JList(ListModel dataModel);      3简单...

lifeneedyou的专栏 308

使用JList

1、Model (1)DefaultListModel:你所需做的事情很少。 (2)AbstractListModel:你需要管理数据并发出事件。需要实现getSize和getElementAt方法。 (3) ListModel 2、初始化JList list = new JList(data); //data has type Object[]list.setSelectionMode...

iteye_684的博客 183

Java Swing Jlist组件

Java Swing 包中的 JList 列表组件,采用 MVC 结构实现,可以实现丰富的列表选项功能。 JList 组件 有许多项供用户选择,这些选择项显示为一列或多列。通常将 JList 组件放在一个滚动面板中,当其中 的选择项超过一定数量时,可以滚动查看。 列表框组件 JList JList list;       String...

B20170302105的博客 646

JComboBox,JList

/** * 作者: * 日期:2013-11-19 * 功能:JComboBox列表框 JList下拉框 */ package com.ch; import java.awt.*; import javax.swing.*; public class Demo10 extends JFrame{ //定义使用的组件 JPanel jp1,jp2; JLabel jl1,jl2

csdt_csdt的专栏 976

java拖拽排序_java swing jlist拖拽一条重新排序

package com.jlist;import java.awt.BorderLayout;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.awt.event.MouseMotionListener;import javax.swing.DefaultListModel;import...

weixin_33990147的博客 260

P31 JList列表框

P31 JList列表框

李晋江的博客 618

java jlist 添加_Java Swing - 如何将String项目添加到JList

import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.DefaultListModel;import javax.swing.JButton;import javax.swing.JFrame;import java...

weixin_36180068的博客 226
上一篇: 对swing看法
下一篇: JTable的基本用法
he_chenjun
博客等级 码龄14年 6粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值