JComboBox 的下拉按钮添加监听

  • 1.问题描述
  • 2.需求分析
  • 3.代码示例
  • 4.结果演示

系统:Win10
JDK:1.8.0_333
IDEA:2020.3.4

1.问题描述

在使用一个 JComboBox 下拉选的时候,需要在点击下拉按钮的时候,给其添加一些操作。所以需要给该下拉按钮添加一些监听函数。

2.需求分析

现在使用一个 JComboBox 实现输入用户名,如果在下拉列表中,则设置为选中,如果不在列表中且非空,则将该项添加至列表,并设置为选中状态
给其添加 addPopupMenuListener 监听函数来实现展开下拉列表的监听

3.代码示例

public class JComboBoxDemo {public static void main(String[] args) {// 创建一个JFrame对象JFrame frame = new JFrame("JComboBox给下拉按钮添加监听");// 创建面板JPanel panel = new JPanel();JLabel label = new JLabel("用户:");// 创建一个JComboBox组件JComboBox<String> comboBox = new JComboBox();// 为项列表添加项comboBox.addItem("张三");comboBox.addItem("李四");comboBox.addItem("王二");comboBox.addItem("麻子");// setSelectedIndex(int anIndex):选择索引 anIndex 处的项// 将anIndex设置为-1代表没有做出选择comboBox.setSelectedIndex(-1);// 设置JComboBox可编辑comboBox.setEditable(true);comboBox.addPopupMenuListener(new PopupMenuListener() {@Overridepublic void popupMenuWillBecomeVisible(PopupMenuEvent e) {// 默认输入的是新元素boolean newItem = true;// 获取输入框中的值JTextField field = (JTextField) comboBox.getEditor().getEditorComponent();String input = field.getText();// System.out.println("input:" + input);// 如果输入框中的值为空,则将newItem设置为falseif (input == null || input.length() == 0) {newItem = false;} else {// 获取JComboBox的列表的项数int count = comboBox.getItemCount();// 遍历列表,如果有值与输入框中相等,则将newItem设置为false,并将其设置为选中for (int i = 0; i < count; i++) {// System.out.println("第" + i + "个item:" + comboBox.getItemAt(i));if (comboBox.getItemAt(i).equals(input)) {newItem = false;comboBox.setSelectedItem(input);break;}}}// System.out.println(newItem);// 最后如果是新元素if (newItem) {// 将该非空元素添加列表comboBox.addItem(input);// 将该项设置为选中comboBox.setSelectedItem(input);}}@Overridepublic void popupMenuWillBecomeInvisible(PopupMenuEvent e) {}@Overridepublic void popupMenuCanceled(PopupMenuEvent e) {}});// 添加各个组件panel.add(label);panel.add(comboBox);frame.add(panel);// 设置窗口大小frame.setSize(new Dimension(400, 300));// 设置窗口居中显示frame.setLocationRelativeTo(null);// 设置窗口关闭后结束运行frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置窗口可见frame.setVisible(true);}
}

4.结果演示

静态图片:

动态演示:

JComboBox 的下拉按钮添加监听相关推荐

  1. PyQt5 技术篇-QComboBox下拉框绑定监听事件实例演示

    currentIndexChanged.connect() 用于监听当前选择的索引改变. 即,选择的内容改变就会触发! items = ["脚本录制", "脚本回放&qu ...

  2. Bootstrap 学习笔记8 下拉菜单滚动监听

    代码部分: <nav class="navbar navbar-default"><a href="#" class="navbar ...

  3. Unity编辑器扩展——在Editor下动态添加监听事件

    对于Unity下例如按钮这种我们可以为它的监听事件手动进行赋值 如果需要通过编辑器扩展来动态为这些监听事件赋值应该如何去实现呢? 首先需要确认的是这些监听事件必须要符合一定的规则才能添加上: 1.必须 ...

  4. 【Unity】Dropdown下拉按钮的一些基本操作 获取值与添加选项

    自己的老帖子,移植过来 原地址: http://www.manew.com/home.php?mod=space&uid=95681&do=blog&view=me&f ...

  5. linux下oracle数据库服务和监听的启动停止

    oracle数据库是重量级的,其管理非常复杂,将其在linux平台上的启动和关闭步骤整理一下. 安装完毕oracle以后,需要创建oracle系统用户,并在/home/oracle下面的.bash_p ...

  6. jMenu 不添加item 直接自己添加监听actionPerformed不行mousePressed可以

    jMenu 不添加item 直接自己添加监听 actionPerformed不行mousePressed可以 看下API应该有详细介绍 转载于:https://www.cnblogs.com/hual ...

  7. 在Photoshop中设计一个漂亮的下拉按钮

    今天,我将告诉你们如何在Photoshop中设计一个有些与众不同,也很美观的按钮. 虽然这看起来很简单,但这种按钮比其他按钮多了下拉菜单,这是一个带下拉菜单的按钮. 准备好了吗? 我们开始吧!安装ph ...

  8. android自定义adapter(实现对按钮的监听)

    我们一般需要自定义adapter   这里就需要继承BaseAdapter adapter在MVC开发模式中,是控制层 baseAdapter  继承这个方法必须重写 四个方法 1.  getcont ...

  9. h5 加载更多下拉按钮_更好的按钮设计的5个技巧

    h5 加载更多下拉按钮 重点 (Top highlight) 第6部分 (Part 6) After we went through all the very basics of UI design ...

最新文章

  1. 【机器学习基本理论】详解最大后验概率估计(MAP)的理解
  2. 蓝桥杯java第八届第一题--购物单
  3. 硕博士生参加学术会议重要吗?如何选择?注意什么?
  4. VTK:颜色顶点查找表用法实战
  5. Ubuntu 16.04 下 Vim安装
  6. SAP FSM 学习笔记(二) : SAP FSM的微信接入
  7. ABAP Development Tool后台处理前台请求的入口
  8. H.264 Profile、Level、Encoder三张简图
  9. nginx学习文档之三 nginx常用命令
  10. 马来亚大学 计算机科学 排名,顶级名校,马来亚大学申请解析!
  11. 计算机网络中的语法 语义 时序的概念,网络iso协议及语义语法时序详解
  12. ubuntu18下pyspider的安装
  13. CentOS 7 配置DHCP服务器
  14. EXT.NET GridPanel默认选中多行
  15. 基于protues与keli下贪吃蛇的实现
  16. 阿里联手数据港合建数据中心 服务金额至少40亿
  17. Python技能树及Markdown编辑器测评 20212109施铖哲
  18. SAP:SMARTFORM打开WORD文档出错,或无法编辑
  19. Python制作词云
  20. ListView 设置 scrollbars 之后出现的细线白边的解决方法

热门文章

  1. 互联网日报 | 7月6日 星期二 | 雷军赠予每位金山员工600股股票;BOSS直聘等被网络安全审查;贝索斯正式卸任亚马逊CEO...
  2. TIFF数据格式实例分析
  3. 面试资料积累css-画三角形
  4. 【c4d常用知识点】倒角工具
  5. python数组两个冒号_python数组冒号取值操作
  6. xmanager开启
  7. 产品02-认识互联网团队
  8. 基于javaweb+jsp的甜品店奶茶店管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap Ajax)
  9. c++如何获取字符串长度
  10. VS Code 修改字体颜色