GUI 关于JComboBox的用法

JList和ComboBox很相似,因为这两个组件都显示一个项列表。因此,它们都有扩展ListModel接口的模型。而且,这两个组件都有绘制器,这些绘制器通过实现ListCellBenderer接口来绘制列表单元。   但是,列表和组合框在施工方面还是有差别的。列表单是不可编辑的,但是组合框可以配备一个编辑器。JComboBox组件把编辑工作交给实现ComboBoxEdit接口的一个对象来处理。 
  列表支持三个选取模式,并把选取工作实现ListSelectionModel接口的一个对象来处理。组合框在一个时刻只有一个可选取的项,而且选取工作由组合框模型来处理。另一方面,组合框支持键选取,即在某项上按下一下键就可以选取这个项,但列表不能这样做。

构造函数 
JComboBox() 
          创建具有默认数据模型的 JComboBox。 
JComboBox(ComboBoxModel aModel) 
          创建一个 JComboBox,其项取自现有的 ComboBoxModel 中。 
JComboBox(Object[] items) 
          创建包含指定数组中的元素的 JComboBox。 
JComboBox(Vector<?> items) 
          创建包含指定 Vector 中的元素的 JComboBox。

常用方法 
addActionListener(ActionListener l) 
          添加 ActionListener。 
addItem(Object anObject) 
          为项列表添加项。 
addItemListener(ItemListener aListener) 
          添加 ItemListener。 
configureEditor(ComboBoxEditor anEditor, Object anItem) 
          利用指定项初始化编辑器。 
getEditor() 
          返回用于绘制和编辑 JComboBox 字段中所选项的编辑器。 
getItemAt(int index) 
          返回指定索引处的列表项。 
getItemCount() 
          返回列表中的项数。 
getModel() 
          返回 JComboBox 当前使用的数据模型。 
getRenderer() 
          返回用于显示 JComboBox 字段中所选项的渲染器。 
getSelectedIndex() 
          返回列表中与给定项匹配的第一个选项。 
getSelectedItem() 
          返回当前所选项。 
insertItemAt(Object anObject, int index) 
          在项列表中的给定索引处插入项。 
isEditable() 
          如果 JComboBox 可编辑,则返回 true。 
removeAllItems() 
          从项列表中移除所有项。 
removeItem(Object anObject) 
          从项列表中移除项。 
removeItemAt(int anIndex) 
          移除 anIndex 处的项。 
setModel(ComboBoxModel aModel) 
          设置 JComboBox 用于获取项列表的数据模型。 
setRenderer(ListCellRenderer aRenderer) 
          设置渲染器,该渲染器用于绘制列表项和从 JComboBox 字段的列表中选择的项。 
setSelectedIndex(int anIndex) 
          选择索引 anIndex 处的项。 
setSelectedItem(Object anObject) 
          将组合框显示区域中所选项设置为参数中的对象。

下面是一个例子:
String[] schoolage = { "本科", "硕士", "博士" };
schoolageComboBox = new JComboBox(schoolage);
schoolageComboBox.addItem("其他");
schoolageComboBox.insertItemAt("请选择", 0);
schoolageComboBox.setSelectedIndex(0);
schoolageComboBox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {     // 查看是否为新选中的选项触发
if (e.getItem().equals("其他") || e.getItem().equals("")) {  // 查看触发的选项
schoolageComboBox.setEditable(true);      // 设置选择框为可编辑
schoolageComboBox.setSelectedItem("");    // 将选项值修改为0字节
} else {
schoolageComboBox.setEditable(false);     // 设置选择框为不可编辑
时间: 2024-07-30 18:32:20

GUI 关于JComboBox的用法的相关文章

王颖奇 20171010129《面向对象程序设计(java)》第十四周学习总结

实验十四  Swing图形界面组件 理论知识知识点: 1.Swing和MVC设计模式2.布局管理器3.文本输入4.选择组件5.菜单6.对话框 实验时间 2018-11-29 1.实验目的与要求 (1) 掌握GUI布局管理器用法: (2) 掌握各类Java Swing组件用途及常用API: 2.实验内容和步骤 实验1: 导入第12章示例程序,测试程序并进行组内讨论. 测试程序1 l 在elipse IDE中运行教材479页程序12-1,结合运行结果理解程序: l 掌握各种布局管理器的用法: l 理

王之泰201771010131《面向对象程序设计(java)》第十四周学习总结

第一部分:理论知识学习部分 第12章 Swing用户界面组件 12.1.Swing和MVC设计模式 a 设计模式初识b 模型-视图-控制器模式c Swing组件的模型-视图-控制器分析 12.2布局管理器 a 布局管理器是一组类. b 实现java.awt.LayoutManager接口 c 决定容器中组件的位置和大小 d Java.awt包中定义了5种布局管理类,每一种布 局管理类对应一种布局策略. e 每个容器都有与之相关的默认布局管理器. f 当一个容器选定一种布局策略时,它应该创建该 策

李清华 201772020113《面向对象程序设计(java)》第十四周学习总结

1.实验目的与要求 (1) 掌握GUI布局管理器用法: (2) 掌握各类Java Swing组件用途及常用API: 2.实验内容和步骤 实验1: 导入第12章示例程序,测试程序并进行组内讨论. 测试程序1 l  在elipse IDE中运行教材479页程序12-1,结合运行结果理解程序: l  掌握各种布局管理器的用法: l  理解GUI界面中事件处理技术的用途. l  在布局管理应用代码处添加注释: 1 package calculator; 2 3 import java.awt.*; 4

201771010108 -韩腊梅-第十四周学习总结

第十四周总结 一.知识总结 1.模型-视图-控制器模式模型:储存内容 视图:显示内容 控制器:处理用户输入 2.布局管理2-1.流布局管理器(FlowLayout) JPanel对象的默认布局管理器为FlowLayout,组件加入JPanel中总是处于中央,一行可以排列多个组件,如果一行的空间容纳不下所有的组件则换行.当顶层窗口缩放时,JPanel中组件的大小不会随之缩放. 2-2.边框布局管理器(BorderLayout) 是JFrame的内容窗格的默认布局管理器,可以选择将空间放在内容窗格的

201771010124 王海珍 《面向对象设计 java》第十四周实验总结

第一部分  理论部分  Swing和MVC设计模式 (1)设计模式(Design pattern)是设计者一种流行的 思考设计问题的方法,是一套被反复使用,多数人 知晓的,经过分类编目的,代码设计经验的总结. (2)模型-视图-控制器设计模式(Model –ViewController )是Java EE平台下创建 Web 应用程序 的重要设计模式. (3)MVC设计模式 – Model(模型):是程序中用于处理程序数据逻 辑的部分,通常模型负责在数据库中存取数据. – View(视图):是程序

焦旭超 201771010109 《面对对象程序设计(java)》第十四周学习总结 第十三组

1.实验目的与要求 (1) 掌握GUI布局管理器用法: (2) 掌握各类Java Swing组件用途及常用API: 2.实验内容和步骤 实验1: 导入第12章示例程序,测试程序并进行组内讨论. 测试程序1 l  在elipse IDE中运行教材479页程序12-1,结合运行结果理解程序: l  掌握各种布局管理器的用法: l  理解GUI界面中事件处理技术的用途. l  在布局管理应用代码处添加注释: 代码: package calculator; import javax.swing.*; /

东文财 赵栋 罗松 201771010106《面向对象程序设计(java)》实验14

实验十四  Swing图形界面组件 实验时间 20178-11-29 一.知识部分 1.模型-视图-控制器模式模型:储存内容 视图:显示内容 控制器:处理用户输入 2.布局管理2-1.流布局管理器(FlowLayout) JPanel对象的默认布局管理器为FlowLayout,组件加入JPanel中总是处于中央,一行可以排列多个组件,如果一行的空间容纳不下所有的组件则换行.当顶层窗口缩放时,JPanel中组件的大小不会随之缩放. 2-2.边框布局管理器(BorderLayout) 是JFrame

201771010113 李婷华 《面向对象程序设计(java)》

一.理论知识部分 设计模式(Design pattern)是设计者一种流行的思考设计问题的方法,是一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.每一个模式描述了一个不断重复发生的设计问题,以及该问题的核心解决方案 模型-视图-控制器设计模式(Model –ViewController )是Java EE平台下创建 Web 应用程序 的重要设计模式. MVC设计模式 – Model(模型):是程序中用于处理程

201771010123汪慧和《面向对象程序设计Java》第十四周实验总结

一.理论部分 1.Swing和MVC设计模式 (1)设计模式初识 (2)模式-试图-控制器模式 (3)Swing组件的模型-试图-控制器分析 2.Java组件有内容.外观.行为三个主要元素:这三个主要元素与模型-试图-控制器模式的三部分的对应关系为: (1)内容--模型(作用:存储内容) (2)外观--视图(作用:显示内容) (3)行为--控制器(作用:处理用户输入) 3.模式-试图-控制器设计模式是Java组件设计中比较通用的设计模式,要想有效利用一些更高级的组件,必须了解组件底层的体系结构.