Java 入门图形用户界面设计之列表框JList
Java程序设计 图形用户界面 【十一】列表框JList
列表框JList
JList常用方法
方法 | 作用 |
---|---|
public JList(ListModel dataModel) | 根据ListModel构造JList |
public JList(Object[] listData) | 根据对象数组构造JList |
public JList(Vector<?> listData) | 根据一个Vector构造JList |
public void setSelectionMode(int selectionMode) | 设置选择模式,是多选还是单选 |
public ListModel getModel() | 返回列表框的列表模型 |
public int[] getSelectedIndices() | 返回所选择的全部数组 |
可以通过ListSelectionModel接口完成列表框是多选还是单选
ListSelectionModel定义的常量
常量 | 作用 |
---|---|
static final int MULTIPLE_INTERVAL_SELECTION | 一次选择一个或多个连续的索引范围 |
static final int SINGLE_INTERVAL_SELECTION | 一次选择一个连续范围的值 |
static final int SINGLE_SELECTION | 一次选择一个值 |
import javax.swing.*; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.Vector; class MyList{ private JFrame frame = new JFrame("一"); private Container cont = frame.getContentPane(); private JList list1 = null; private JList list2 = null; public MyList(){ this.frame.setLayout(new GridLayout(1,3)); String n[] = {"A","B","C","D","E","F"}; Vector<String> v = new Vector<String>(); v.add("A"); v.add("B"); v.add("C"); this.list1 = new JList(n); this.list2 = new JList(v); list1.setBorder(BorderFactory.createTitledBorder("请选择")); list2.setBorder(BorderFactory.createTitledBorder("请选择")); list1.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); list2.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); cont.add(this.list1); cont.add(this.list2); this.frame.setSize(300,200); this.frame.setVisible(true); this.frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { super.windowClosing(e); System.exit(1); } }); } } public class Hello { public static void main(String[] args) { new MyList(); } }
第一个JList通过字符串数组设置列表的内容,并通过setSelectionMode()方法设置一次性可以选择多个选项
第二个JList通过Vector设置列表的内容,并通过setSelectionMode()方法将其设置成每次只能选择一个选项
使用ListModel构造JList
ListModel是一个专门用于创建JList列表内容操作的接口
方法 | 作用 |
---|---|
void addListDataListener(ListDataListener l) | 加入数据改变事件的监听 |
void removeListDataListener(ListDataListener l) | 加入数据删除时的监听 |
Object getElementAt(int index) | 返回指定索引处的内容 |
int getSize() | 返回列表长度 |
import javax.swing.*; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; class MyListModel extends AbstractListModel{ private String n[]={"A","B","C","D"}; @Override public int getSize() { return this.n.length; } public Object getElementAt(int ind){ if(ind<this.n.length){ return this.n[ind]; }else { return null; } } } class MyList{ private JFrame frame = new JFrame("一"); private Container cont = frame.getContentPane(); private JList list1 =null; public MyList(){ this.list1 = new JList(new MyListModel()); list1.setBorder(BorderFactory.createTitledBorder("请选择")); list1.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); cont.add(this.list1); this.frame.setSize(300,200); this.frame.setVisible(true); this.frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { super.windowClosing(e); System.exit(1); } }); } } public class Hello { public static void main(String[] args) { new MyList(); } }
JList事件处理
使用ListSelectionListener的监听接口实现对JList中所选项的监听
ListSelectionListener接口定义的方法
方法 | 作用 |
---|---|
void valueChanged(ListSelectionEvent e) | 当值发生改变时调用 |
ListSelectionEvent的常用方法
方法 | 作用 |
---|---|
public int getFirsIndex() | 返回选择的第1个选项的索引值 |
public int getLastIndex() | 返回选择的最后1个选项的索引值 |
对JList进行监听
import javax.swing.*; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; class MyListModel extends AbstractListModel{ private String n[]={"A","B","C","D"}; @Override public int getSize() { return this.n.length; } public Object getElementAt(int ind){ if(ind<this.n.length){ return this.n[ind]; }else { return null; } } } class MyList implements ListSelectionListener { private JFrame frame = new JFrame("一"); private Container cont = frame.getContentPane(); private JList list1 =null; public MyList(){ this.list1 = new JList(new MyListModel()); list1.setBorder(BorderFactory.createTitledBorder("请选择")); list1.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); list1.addListSelectionListener(this); cont.add(this.list1); this.frame.setSize(300,200); this.frame.setVisible(true); this.frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { super.windowClosing(e); System.exit(1); } }); } @Override public void valueChanged(ListSelectionEvent e) { int temp[] = list1.getSelectedIndices(); System.out.print("选的的内容是:"); for(int i:temp){ System.out.print(list1.getModel().getElementAt(i)+","); } System.out.println(); } } public class Hello { public static void main(String[] args) { new MyList(); } }
到此这篇关于Java 入门图形用户界面设计之列表框JList的文章就介绍到这了,更多相关Java 列表框JList内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java之String、StringBuffer、StringBuilder的区别分析
今天搞安卓在看书的时候遇到了StringBuilder这个类型的东东,有点小迷,不知道它跟string、stringbuffer的关系式怎么样的,赶快查阅相关资料,了解了个大概,拿出来分享一下2012-11-11springboot 集成cas5.3 实现sso单点登录详细流程
SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。单点登录是目前比较流行的企业业务整合的解决方案之一,本文给大家介绍springboot 集成cas5.3 实现sso单点登录功能,感兴趣的朋友一起看看吧2021-10-10通过Spring Boot + Mybatis + Redis快速搭建现代化Web项目
本篇文章介绍了如何通过Spring Boot、Mybatis以及Redis快速搭建一个现代化的Web项目,并且同时介绍了如何在Spring Boot下优雅地书写单元测试来保证我们的代码质量。具体内容详情大家通过本文学习下吧2017-12-12关于Intellij idea 报错:Error : java 不支持发行版本5的问题
这篇文章主要介绍了关于Intellij idea 报错:Error : java 不支持发行版本5的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-02-02
最新评论