列表和组合框是又一类供用户选择的界面组件,用于在一组选择项目选择,组合框还可以输入新的选择。

列表

列表(JList)在界面中表现为列表框,是JList类或它的子类的对象。程序可以在列表框中加入多个文本选择项条目。列表事件的事件源有两种:

一是鼠标双击某个选项:双击选项是动作事件,与该事件相关的接口是ActionListener,注册监视器的方法是addActionListener(),接口方法是actionPerformed(ActionEvent e)。

二是鼠标单击某个选项:单击选项是选项事件,与选项事件相关的接口是ListSelectionListener,注册监视器的方法是addListSelectionListener,接口方法是valueChanged(ListSelectionEvent e)。

JList 类的常用构造方法:

JList():建立一个列表。

JList(String list[]):建立列表,list是字符串数组,数组元素是列表的选择条目。

JList类的常用方法:

getSelectedIndex():获取选项的索引。返回最小的选择单元索引;只选择了列表中单个项时,返回该选择。

getSelectedValue():获取选项的值。

getSelectedIndices():返回所选的全部索引的数组(按升序排列)。

getSelectedValues(),:返回所有选择值的数组,根据其列表中的索引顺序按升序排序。

getItemCount():获取列表中的条数。

setVisibleRowCount(int n):设置列表可见行数。

setSelectionMode(int seleMode):设置列表选择模型。选择模型有单选和多选两种。

单选:ListSelectionModel.SINGLE_SELECTION.

多选:ListSelectionModel.MULTIPLE.INTERVAL_SELECTION.

remove(int n):从列表的选项菜单中删除指定索引的选项。

removeAll():删除列表中的全部选项。

列表可以添加滚动条,列表添加滚动条的方法是先创建列表,然后再创建一个JScrollPane滚动面板对象,在创建滚动面板对象时指定列表。以下代码示意为列表list2添加滚动条:

JScrollPane jsp = new JScrollPane(list2);

【例 11-13】小应用程序有两个列表,第一个列表只允许单选,第二个列表允许多选。

1 import java.applet.*;2 import javax.swing.*;3 import java.awt.*;4 import java.awt.event.*;5 class MyWindow extends JFrame implementsListSelectionListener{6 JList list1,list2;7 String news[]={"人民日报","新民晚报","浙江日报","文汇报"};8 String sports[]={"足球","排球","乒乓球","篮球"};9 JTextArea text;10 MyWindow(String s){11 super(s);12 Container con =getContentPane();13 con.setBackground(Color.BLUE);14 con.setLayout(new GridLayout(2,2));15 con.setSize(200,500);16 list1 = newJList(news);17 list1.setVisibleRowCount(3);18 list1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);19 list1.addListSelectionListener(this);20 list2 = newJList(sports);21 list2.setVisibleRowCount(2);22 list2.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);23 list2.addListSelectionListener(this);24 con.add(list1);25 con.add(list2);26 text= new JTextArea(10,20);27 con.add(text);28 this.setVisible(true);29 this.pack();30 }31 public void valueChanged(ListSelectionEvent e){//每当选择值发生更改时调用

32 if(e.getSource()==list1){33 text.setText(null);34 Object listValue =((JList) e.getSource()).getSelectedValue();35 String seleName =listValue.toString();36 for(int i=0;i

组合框

组合框(JComboBox)是文本框和列表的组合,可以在文本框中输入选项,也可以单击下拉按钮从显示的列表中进行选择。

组合框的常用构造方法:

JComboBox():建立一个没有选项的JComboBox对象。

JComboBox(JComboBoxModel aModel):用数据模型建立一个JComboBox对象。

JComboBox(Object[]items):利用数组对象建立一个JComboBox对象。

组合框的其他常用方法有以下几个:

addItem(Object obj):向组合框加选项。

getItemCount():获取组合框的条目总数。

removeItem(Object ob):删除指定选项。

removeItemAt(int index):删除指定索引的选项。

insertItemAt(Object ob,int index):在指定的索引处插入选项。

getSelectedIndex():获取所选项的索引值(从0开始)。

getSelectedItem():获得所选项的内容。

setEditable(boolean b):设为可编辑。组合框的默认状态是不可编辑的,需要调用本方法设定为可编辑,才能响应选择输入事件。

在JComboBox对象上发生事件分为两类。一是用户选定项目,事件响应程序获取用户所选的项目。二是用户输入项目后按回车键,事件响应程序读取用户的输入。第一类事件的接口是ItemListener;第二类事件是输入事件,接口是ActionListener。

【例 11-14】一个说明组合框用法的应用程序。程序中声明的组合框子类实现ItemLister接口和ActionListener接口。组合框子类的窗口中设置了一个文本框和一个组合框,组合框中有三个选择。实现接口的监视方法将组合框的选择结果在文本框中显示。

1 public classExample6_4{2 public static voidmain(String args[]){3 ComboBoxDemo mycomboBoxGUI = newComboBoxDemo();4 }5 }6 class ComboBoxDemo extends JFrame implementsActionListener,ItemListener{7 public static final int Width = 350;8 public static final int Height = 150;9 String proList[] = { "踢足球","打篮球","打排球"};10 JTextField text;11 JComboBox comboBox;12 publicComboBoxDemo(){13 setSize(Width,Height);14 setTitle("组合框使用示意程序");15 Container conPane =getContentPane();16 conPane.setBackground(Color.BLUE);17 conPane.setLayout(newFlowLayout());18 comboBox = newJComboBox(proList);19 comboBox.addActionListener(this);20 combobox.addItemListener(this);21 comboBox.setEditable(true);//响应键盘输入

22 conPane.add(comboBox);23 text = new JTextField(10);24 conPane.add(text);25 this.setVisible(true);26 }27 public voidactionPerformed(ActionEvent e){28 if(e.getSource()==comboBox)29 text.setText(comboBox.getSelectedItem().toString());30 }31 public voiditemStateChanged(ItemEvent e){32 if(e.getSource()==comboBox){33 text.setText(comboBox.getSelectedItem().toString());34 }35 }36 }

系列文章:

java 组合框_Java知多少(88)列表和组合框相关推荐

  1. java 股票 代码_Java中利用散列表实现股票行情的查询_java

    ---- 在java中,提供了一个散列表类Hashtable,利用该类,我们可以按照特定的方式来存储数据,从而达到快速检索的目的.本文以查询股票的收盘数据为例,详细地说明java中散列表的使用方法. ...

  2. java所有单词_JAVA常用英语单词列表

    原标题:JAVA常用英语单词列表 第一章: public['pʌblik] 公共的,公用的 static['stætik] 静的;静态的;静止的 void:[vɔid] 空的 main:[mein] ...

  3. java gui 单选_java GUI编程(swing)之三swing单选框复选框组件

    swing复选框(JCheckBox) 单选框(JRadioButton) 特别说明:同一组单选按钮,必须先创建一个ButtonGroup,然后把单选按钮放到ButtonGroup 中 package ...

  4. java判断单选按钮_java中如何判断是哪个单选框被选中了?

    java中如何判断是哪个单选框被选中了? 來源:互聯網  2010-08-12 22:14:48  評論 分類: 電腦/網絡 >> 程序設計 >> 其他編程語言 問題描述: 我 ...

  5. java interface泛型_java – 使用泛型和接口实现组合

    我正在努力实现以下目标: 我的类X有一个通用的Y.然而,这个泛型Y需要访问X的资源,我想通过接口来处理它,以便允许其他人继承任意选择的类. 然而,我目前的方法会产生一系列泛型: public inte ...

  6. Java学习day078 Swing用户界面组件(四:选择组件)(复选框、单选钮、边框、组合框、滑动条)

    使用的教材是java核心技术卷1,我将跟着这本书的章节同时配合视频资源来进行学习基础java知识. day078   Swing用户界面组件(四:选择组件)(复选框.单选钮.边框.组合框.滑动条) 前 ...

  7. Java知多少(87)选择框和单选按钮(转)

    选择框.单选框和单选按钮都是选择组件,选择组件有两种状态,一种是选中(on),另一种是未选中(off),它们提供一种简单的 "on/off"选择功能,让用户在一组选择项目中作选择. ...

  8. 511遇见易语言组合框读取写配置文件和列表项目

    本课首先录制了易语言组合框渐变背景颜色,然后通过读写配置文件ini来实现组合框加入项目,添加项目列表 视频链接: 77 组合框读取写配置文件和列表项目视频教程源码: .版本 2.程序集 窗口程序集_启 ...

  9. java 方法 示例_Java 9示例–收集的工厂方法–创建不可修改的列表,集合和映射...

    java 方法 示例 大家好,这是我在该博客上发表的有关Java 9功能的第一篇文章,今天您将了解我最喜欢的功能"收集的工厂方法" ,它是JEP 269的一部分.JEP代表JDK增 ...

最新文章

  1. SQL Server 表和索引存储结构
  2. 视角不平衡立体匹配研究
  3. 面试题6:从尾巴开始打印链表
  4. 第一阶段冲刺 第八天
  5. 汇总少了退款汇总 多了一笔支付汇总 很可能是因为商户退款配置的是正交易权限(配置的问题)
  6. 阿根廷点杀荷兰,24年后再进决赛
  7. [ios] NSSet,NSMutableSet[zhuan]
  8. python 代码片段24
  9. plc比c语言还难,plc编程好学吗??
  10. 分布式任务调度平台XXL-JOB
  11. 775针服务器cpu性能排行,775针cpu排行榜说明
  12. iphone开发 加速计
  13. C# 实现Windows Media Encoder音视频捕捉
  14. 实变函数自制笔记9:勒贝格积分的极限定理
  15. python if函数两个并列条件怎么用_IF函数,多个条件怎么用
  16. 李沐论文精读系列五:DALL·E2(生成模型串讲,从GANs、VE/VAE/VQ-VAE/DALL·E到扩散模型DDPM/ADM)
  17. java aspose 加水印_使用Aspose.words for java去掉Word文档的水印(底图)
  18. Daz导出模型的部件中英文对照
  19. Windows安装程序初始化时出错。安装程序将立即关闭。(原)
  20. 班主任工作总结中职计算机网络,中职学校班主任工作总结

热门文章

  1. 链表问题9——复制含有随机指针节点的链表(进阶)
  2. php动态语言静态化
  3. Python3.5+SQL+Prometheus+Grafana报表/监控
  4. python爬虫系列(5.3-动态网站的爬取的策略)
  5. 中国唯一的“国际数字化转型专家”,阿里云获Forrester认可
  6. 抽点时间让我们一起来学linux系统
  7. 小程序用thinkPHP上传文件到腾讯云对象存储空间
  8. java 线程关闭小结(转)
  9. 转:Python 代码调试技巧
  10. VisualStudio:WEB 性能测试和负载测试 入门