下拉列表框组件

  • 一、关键代码
    • 一)、创建单个下拉列表框的内容(项)
    • 二)、字符串数组添加多个下拉列表框的内容(项)
    • 三)、模型方法给下拉列表框添加内容(项)
  • 二、简单说明
  • 三、流程图
  • 四、源码
    • 一)、源码A
    • 二)、源码A的运行效果
      • 1.默认编译效果
      • 2.方法way2的窗体
      • 3.方法way3的窗体
      • 4.方法way4的窗体
  • 五、结语
  • 六、定位日期

一、关键代码

一)、创建单个下拉列表框的内容(项)

  1. 可以先创建下拉列表框,然后不断的一个个添加内容元素,注意泛型的使用,泛型这里选择字符串(String)。
  2. 单个创建下拉下拉列表框的内容元素,可以创建多个,下方源码只创建一个(“PC120挖机”)。
  3. 需要注意在源码前面添加下拉列表框的包类。import javax.swing.JComboBox;// 下拉框列表
     // combo(连击),String<字符串>JComboBox<String> comboBox_1=new JComboBox<>();comboBox_1.addItem("PC120挖机");// 下拉框列表添加内容。Item(条款,项)

二)、字符串数组添加多个下拉列表框的内容(项)

  • 也可以先创建字符串数组,数组里添加多个内容(项),然后将这个字符串数组的数据添加到下拉列表框中。
     String items_1[]={"54m天泵","56m天泵","62m天泵"};// 建立数组JComboBox<String> comboBox_1=new JComboBox<>(items_1);// 使用数组String添加下拉元素

三)、模型方法给下拉列表框添加内容(项)

  1. 需要注意泛型的添加,不加有些JDK版本报错。源码本身无问题,但会因版本的兼容性问题报错。
  2. 模型方法注意添加模型相关的包类。
    import javax.swing.ComboBoxModel;// 下拉框列表模型
    import javax.swing.DefaultComboBoxModel;// 默认下拉框列表模型
  3. 模型方法的好处之一是当要在原来内容的基础上,继续加某一项内容(项)时,编写相关插入的相关代码便可。如:
    model_1.addElement(tmp);// 向数组模型添加元素 Element(元素)
    注意: 上行一行代码,这里只做说明使用,本文源码未使用。
     JComboBox<String> comboBox_1=new JComboBox<>();// 新建下拉框列表String items_1[]={"小户型","大户型","工区"};// 下行不加<String>会因版本问题报错ComboBoxModel<String> cm_1=new DefaultComboBoxModel<>(items_1);// 创建下拉框列表模型comboBox_1.setModel(cm_1);// 向列表中添加模型

二、简单说明

  • 大致流程说明。大致的流程也可观看流程图得知。先创建窗体f和容器c,将容器嵌入窗体中。设置窗体点击×即关闭程序,窗体可见,初始不设置布局。以上主要为way1的相关源码。然后创建一个下拉列表框,并给下拉列表框添加内容(元素)。添加内容有三种方法,源码看way2、way3、way4部分,分别为三种添加内容(项、元素)的方法。
  • way2的源码流程,先创建下拉列表框,然后逐个添加内容元素,最后再以动作监听,输出信息框的方式展示运行效果。
  • way3的源码流程,先创建字符串数组,数组中编辑好内容元素,然后将字符串数组添加到下拉列表框中,最后和way2一样以信息框展示运行效果。
  • way4的源码流程,创建下拉列表框,创建数组,将数组引入模型中,将模型添加到下拉列表框中。然后添加事件监听,通过输入信息框的方式展示运行效果。模型个泛型需要设置好,因为有的JDK版本会提示因编译的安全问题报错而无法编译。
  • Main一类。创建Demo类,功能的组合,如way1接way2,或者way1接way3。本文直接创建3个way1的窗体。

三、流程图

#mermaid-svg-tpIGeanDf51Tbq1I {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-tpIGeanDf51Tbq1I .error-icon{fill:#552222;}#mermaid-svg-tpIGeanDf51Tbq1I .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-tpIGeanDf51Tbq1I .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-tpIGeanDf51Tbq1I .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-tpIGeanDf51Tbq1I .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-tpIGeanDf51Tbq1I .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-tpIGeanDf51Tbq1I .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-tpIGeanDf51Tbq1I .marker{fill:#333333;stroke:#333333;}#mermaid-svg-tpIGeanDf51Tbq1I .marker.cross{stroke:#333333;}#mermaid-svg-tpIGeanDf51Tbq1I svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-tpIGeanDf51Tbq1I .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-tpIGeanDf51Tbq1I .cluster-label text{fill:#333;}#mermaid-svg-tpIGeanDf51Tbq1I .cluster-label span{color:#333;}#mermaid-svg-tpIGeanDf51Tbq1I .label text,#mermaid-svg-tpIGeanDf51Tbq1I span{fill:#333;color:#333;}#mermaid-svg-tpIGeanDf51Tbq1I .node rect,#mermaid-svg-tpIGeanDf51Tbq1I .node circle,#mermaid-svg-tpIGeanDf51Tbq1I .node ellipse,#mermaid-svg-tpIGeanDf51Tbq1I .node polygon,#mermaid-svg-tpIGeanDf51Tbq1I .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-tpIGeanDf51Tbq1I .node .label{text-align:center;}#mermaid-svg-tpIGeanDf51Tbq1I .node.clickable{cursor:pointer;}#mermaid-svg-tpIGeanDf51Tbq1I .arrowheadPath{fill:#333333;}#mermaid-svg-tpIGeanDf51Tbq1I .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-tpIGeanDf51Tbq1I .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-tpIGeanDf51Tbq1I .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-tpIGeanDf51Tbq1I .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-tpIGeanDf51Tbq1I .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-tpIGeanDf51Tbq1I .cluster text{fill:#333;}#mermaid-svg-tpIGeanDf51Tbq1I .cluster span{color:#333;}#mermaid-svg-tpIGeanDf51Tbq1I div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-tpIGeanDf51Tbq1I :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

窗体
容器
初始不设置布局
下拉列表框
添加元素方法way2
添加元素方法way3
添加元素方法way4
分别创建多个元素
设置可编辑
动作监听弹出信息框
字符串数组创建元素
设置不可编辑
动作监听弹出信息框
模型方法创建元素
动作监听弹出信息框

四、源码

一)、源码A

  • 窗体里添加一个下拉列表框,和一个按钮。点击按钮弹出信息框,信息框的内容:索引和选择的内容。给下拉列表框里添加元素,代码有三种方法来实现。这里分别用方法way2、way3、way4(way1为窗体的属性)。本文源码是选择直接编译成三个窗体,各显示三个方法的效果。毕竟注释后一个个分别编译后的效果对比性较差,直接在桌面共同生成三个方法各自的效果对比性更好。
  • 注意:编译后三个窗体,是重合的,分别拉开分析便可。
/*   【程序思想】
*   下拉列表框组件
*/import java.awt.Container;// 容器import java.awt.event.ActionListener;// 动作监听
import java.awt.event.ActionEvent;// 动作事件import javax.swing.JFrame;// 窗体
import javax.swing.JComboBox;// 下拉框列表
import javax.swing.ComboBoxModel;// 下拉框列表模型
import javax.swing.DefaultComboBoxModel;// 默认下拉框列表模型
import javax.swing.JButton;// 按钮
import javax.swing.JOptionPane;// 选择 窗格class Demo{JFrame f=new JFrame();// 窗体Container c;// 容器/*way1窗体的基本属性*/void way1(){f.setBounds(400,200,500,400);// 位置、尺寸f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 点×即关闭c=f.getContentPane();// 容器c嵌入窗体c.setLayout(null);// 初始容器c不设置布局}/*way2下拉框列表属性的设置,方法一*/void way2(){// combo(连击),String<字符串>JComboBox<String> comboBox_1=new JComboBox<>();comboBox_1.addItem("PC120挖机");// 下拉框列表添加内容。Item(条款)comboBox_1.addItem("YC60挖机");// 下拉框列表添加内容。Item(条款)comboBox_1.addItem("PC220炮机");// 下拉框列表添加内容。Item(项,项目)comboBox_1.setBounds(15,10,100,20);// 下拉框的坐标、尺寸。绝对布局c.add(comboBox_1);comboBox_1.setEditable(true);// 列表框可编辑JButton btn_1=new JButton("按钮way2");// Action(动作),performed(执行),Message(信息),dialog(对话框),selected(挑选),index(指数)btn_1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){JOptionPane.showMessageDialog(f,"选择的索引:"+comboBox_1.getSelectedIndex()+"\n"+"选择的内容为:"+comboBox_1.getSelectedItem());}});btn_1.setBounds(120,20,110,40);// 按钮的坐标、尺寸c.add(btn_1);}/*way3下拉框列表的属性设置,方法二*/void way3(){String items_1[]={"54m天泵","56m天泵","62m天泵"};// 建立数组JComboBox<String> comboBox_1=new JComboBox<>(items_1);// 使用数组String添加下拉元素comboBox_1.setBounds(20,15,90,30);// 下拉框列表的位置、尺寸c.add(comboBox_1);comboBox_1.setEditable(false);// 列表框不可编辑JButton btn_1=new JButton("按钮way3");// Action(动作),performed(执行),Message(信息),dialog(对话框),selected(挑选),index(指数)btn_1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){JOptionPane.showMessageDialog(f,"选择的索引:"+comboBox_1.getSelectedIndex()+"\n"+"选择的内容为:"+comboBox_1.getSelectedItem());}});btn_1.setBounds(120,20,110,40);// 按钮的坐标、尺寸c.add(btn_1);}/*way4下拉框的属性,方法三模型方法*/void way4(){// <泛型:字符串>JComboBox<String> comboBox_1=new JComboBox<>();// 新建下拉框列表String items_1[]={"小户型","大户型","工区"};// 下行不加<String>会因版本问题报错ComboBoxModel<String> cm_1=new DefaultComboBoxModel<>(items_1);// 创建下拉框列表模型comboBox_1.setModel(cm_1);// 向下拉列表中添加模型comboBox_1.setBounds(20,18,90,25);// 下拉框列表坐标、大小c.add(comboBox_1);JButton btn_1=new JButton("按钮way4");// Action(动作),performed(执行),Message(信息),dialog(对话框),selected(挑选),index(索引)btn_1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){JOptionPane.showMessageDialog(f,"选择的索引:"+comboBox_1.getSelectedIndex()+"\n"+"选择的内容为:"+comboBox_1.getSelectedItem());}});btn_1.setBounds(120,20,110,40);// 按钮的坐标、尺寸c.add(btn_1);}public static void main(String[] args) {Demo d=new Demo();d.way1();// 窗体a属性d.way2();// 下拉框列表的属性,编写方式1Demo d_2=new Demo();d_2.way1();// 再新建一个窗体bd_2.way3();// 下拉框列表的属性,编写方式2Demo d_3=new Demo();d_3.way1();// 新建窗体cd_3.way4();// 下拉框列表的属性,编写方式3,模型d.f.setVisible(true);// 窗体可见d_2.f.setVisible(true);d_3.f.setVisible(true);}
}

二)、源码A的运行效果

1.默认编译效果

(1)、默认的编译效果,三个窗体因方法way1设置的坐标大小相同,所以在同一位置。如下图。我们分别拉开展示就好。

(2)、拉开最前面的两个窗体,让三个窗体在同一桌面平面展示。如下:

2.方法way2的窗体

(1)、点击“按钮way2”,效果如下:

(2)、 “按钮way2”窗体的下拉列表框是可以编辑的,源码A中有相关的代码。这里我们编辑“推土机”后点击“按钮way2”,效果如下:

3.方法way3的窗体

(1)、选择下拉列表框中的“62m天泵”,如下:

(2)、点击“按钮way3”,效果如下:

4.方法way4的窗体

(1)、选择下拉列表框中的“大户型”,如下:

  • 注意:way4使用模型方法添加元素。

    (2)、点击“按钮way04”的效果如下:

五、结语

模型方法不设置好或不设泛型的话,有时候编译报错,作者的JDK版本便无法编译,不是常见的缺什么内容或类相关的报错,而是大致意思是说这个方法不安全不给你编译的报错。但有的版本不设置泛型便可编译运行。对于窗体的运行效果,想着一个个编译截图上传太麻烦,便选择生成三个方法下不同编译效果的窗体,这样对比也比较直观。其实这里“比较”的方向意思是三个方法都可以达成相同的效果,而不是各窗体的这个和哪个看起来怎么怎么样的不同。编译直观不同的地方是各方法里又另外添加了些功能代码,如:way2窗体的下拉列表框可编辑,way3窗体的下拉列表框不可编辑。但根本上元素类下拉选择的效果各方法却是一样的。

六、定位日期

2022.4.19;23:25 流程图、源码、源码运行效果的内容
2022.4.20;23:30

java:下拉列表框组件相关推荐

  1. java swing 组件技术(上)

    2019独角兽企业重金招聘Python工程师标准>>> 第一次写自己的博客,明知道写得很水,还是努力去写了,希望踏出第一步之后,能有着更好的发展.这几天看了一些资料,总结了一下自己所 ...

  2. 在 Java EE 组件中使用 Camel Routes

    2019独角兽企业重金招聘Python工程师标准>>> 摘要:你可以通过集成 Camel 和 WildFly 应用服务器(使用 WildFly-Camel 子系统)在 Java EE ...

  3. 第二百二十三节,jQuery EasyUI,ComboBox(下拉列表框)组件

    jQuery EasyUI,ComboBox(下拉列表框)组件,可以远程加载数据的下拉列表组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 C ...

  4. java ee各类组件_在Java EE组件中使用骆驼路线

    java ee各类组件 从现在开始我一直在与Camel合作,我真的很喜欢它的简单性. 在Java EE之上使用它一直是一个挑战,我最近发表了一篇关于如何做到这一点的演讲,而在Java EE中引导Cam ...

  5. 在Java EE组件中使用骆驼路线

    从现在开始我一直在与Camel合作,我真的很喜欢它的简单性. 在Java EE之上始终使用它一直是一个挑战,而我最近发表的有关如何做到这一点的演讲之一以及Java EE中引导Camel的不同方法实际上 ...

  6. java组件_三个必不可少的Java平台组件:什么是JVM,JDK,JRE?有啥区别?

    刚接触Java的开发人员经常想知道Java虚拟机,Java开发工具包和Java运行时环境与众不同的地方.他们也很好奇这三个Java平台组件如何在Java应用程序中一起工作.最后,开发人员需要知道他们将 ...

  7. Java同步组件之Condition,FutureTask

    Java同步组件概况 CountDownLatch : 是闭锁,通过一个计数来保证线程是否一直阻塞 Semaphore: 控制同一时间,并发线程数量 CyclicBarrier:字面意思是回环栅栏,通 ...

  8. Java同步组件之CyclicBarrier,ReentrantLock

    文章目录 Java同步组件概况 `CyclicBarrier`介绍 与`CountDownLatch`比较 相同点 不同点 `CountDownLatch`和`CyclicBarrier`的场景比较 ...

  9. Java同步组件之CountDownLatch,Semaphore

    Java同步组件概况 CountDownLatch : 是闭锁,通过一个计数来保证线程是否一直阻塞 Semaphore: 控制同一时间,并发线程数量 CyclicBarrier:字面意思是回环栅栏,通 ...

最新文章

  1. 电脑b站html加速播放,b站投稿如何提高播放速度?如何2倍速?b站播放器选择倍速快捷方式...
  2. android之服务
  3. 打印杨辉三角形知识点_用编程方法打印杨辉三角形
  4. Thread.yield()和Thread.sleep(0)
  5. 排序算法 快速排序 python 0913
  6. Win11键盘在哪里设置?Win11键盘的设置方法
  7. [转]VS2013+简单稀疏光束调整库SSBA配置(64位编译)
  8. 嵌入式软件工程师就只需会写C代码吗
  9. 计算机网络怎么算默认网关,ip地址子网掩码计算器_默认网关怎么计算_ip 掩码 网关的关系(2)...
  10. 学习编程需要学习什么?
  11. 第5章、解析Hello,world!知其然,更要知其所以然(从零开始学Android)
  12. Node.js 4493图片批量下载爬虫1.00
  13. php网页抓取浏览者手机号码_php 获取 手机浏览器的信息 获取手机号
  14. 精益软件度量之读书笔记(一)度量和组织目标
  15. 怎么定位门面位置_如何选择店面位置
  16. 大华摄像头实现web端实时播放以及录像回放
  17. Python基础学习之 os 模块详解
  18. SRS流媒体服务器:服务器读取RTMP推流数据
  19. vue3中实现放大镜效果,使用ref获取节点元素
  20. 整理 | 计算机听觉领域可以考虑发哪些期刊会议

热门文章

  1. GDAL 遥感 图像处理 锐化(Laplace算子、Sobel算子)
  2. 本周大新闻|FDA公布XR认证医疗名单,索尼推数字孪生平台Mapray
  3. 健身管理系统 -像微信一样简单的智能健身房管理系统
  4. c++中static的用法详解
  5. 私有5g网络_2020-2026全球与中国私有LTE和5G网络市场现状及未来发展趋势
  6. HTML 写代码流星雨
  7. 计算机专业如何自己增加项目经验?
  8. coursera 吴恩达 -- 第一课 神经网络和深度学习 :第三周课后习题 Key concepts on Deep Neural Networks Quiz, 10 questions
  9. 云上部署oracle rac,在青云上部署oracle rac全过程
  10. 运行中的程序突然出现Killed原因