java:下拉列表框组件
下拉列表框组件
- 一、关键代码
- 一)、创建单个下拉列表框的内容(项)
- 二)、字符串数组添加多个下拉列表框的内容(项)
- 三)、模型方法给下拉列表框添加内容(项)
- 二、简单说明
- 三、流程图
- 四、源码
- 一)、源码A
- 二)、源码A的运行效果
- 1.默认编译效果
- 2.方法way2的窗体
- 3.方法way3的窗体
- 4.方法way4的窗体
- 五、结语
- 六、定位日期
一、关键代码
一)、创建单个下拉列表框的内容(项)
- 可以先创建下拉列表框,然后不断的一个个添加内容元素,注意泛型的使用,泛型这里选择字符串(String)。
- 单个创建下拉下拉列表框的内容元素,可以创建多个,下方源码只创建一个(“PC120挖机”)。
- 需要注意在源码前面添加下拉列表框的包类。
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添加下拉元素
三)、模型方法给下拉列表框添加内容(项)
- 需要注意泛型的添加,不加有些JDK版本报错。源码本身无问题,但会因版本的兼容性问题报错。
- 模型方法注意添加模型相关的包类。
import javax.swing.ComboBoxModel;// 下拉框列表模型
import javax.swing.DefaultComboBoxModel;// 默认下拉框列表模型
- 模型方法的好处之一是当要在原来内容的基础上,继续加某一项内容(项)时,编写相关插入的相关代码便可。如:
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的窗体。
三、流程图
四、源码
一)、源码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:下拉列表框组件相关推荐
- java swing 组件技术(上)
2019独角兽企业重金招聘Python工程师标准>>> 第一次写自己的博客,明知道写得很水,还是努力去写了,希望踏出第一步之后,能有着更好的发展.这几天看了一些资料,总结了一下自己所 ...
- 在 Java EE 组件中使用 Camel Routes
2019独角兽企业重金招聘Python工程师标准>>> 摘要:你可以通过集成 Camel 和 WildFly 应用服务器(使用 WildFly-Camel 子系统)在 Java EE ...
- 第二百二十三节,jQuery EasyUI,ComboBox(下拉列表框)组件
jQuery EasyUI,ComboBox(下拉列表框)组件,可以远程加载数据的下拉列表组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 C ...
- java ee各类组件_在Java EE组件中使用骆驼路线
java ee各类组件 从现在开始我一直在与Camel合作,我真的很喜欢它的简单性. 在Java EE之上使用它一直是一个挑战,我最近发表了一篇关于如何做到这一点的演讲,而在Java EE中引导Cam ...
- 在Java EE组件中使用骆驼路线
从现在开始我一直在与Camel合作,我真的很喜欢它的简单性. 在Java EE之上始终使用它一直是一个挑战,而我最近发表的有关如何做到这一点的演讲之一以及Java EE中引导Camel的不同方法实际上 ...
- java组件_三个必不可少的Java平台组件:什么是JVM,JDK,JRE?有啥区别?
刚接触Java的开发人员经常想知道Java虚拟机,Java开发工具包和Java运行时环境与众不同的地方.他们也很好奇这三个Java平台组件如何在Java应用程序中一起工作.最后,开发人员需要知道他们将 ...
- Java同步组件之Condition,FutureTask
Java同步组件概况 CountDownLatch : 是闭锁,通过一个计数来保证线程是否一直阻塞 Semaphore: 控制同一时间,并发线程数量 CyclicBarrier:字面意思是回环栅栏,通 ...
- Java同步组件之CyclicBarrier,ReentrantLock
文章目录 Java同步组件概况 `CyclicBarrier`介绍 与`CountDownLatch`比较 相同点 不同点 `CountDownLatch`和`CyclicBarrier`的场景比较 ...
- Java同步组件之CountDownLatch,Semaphore
Java同步组件概况 CountDownLatch : 是闭锁,通过一个计数来保证线程是否一直阻塞 Semaphore: 控制同一时间,并发线程数量 CyclicBarrier:字面意思是回环栅栏,通 ...
最新文章
- 电脑b站html加速播放,b站投稿如何提高播放速度?如何2倍速?b站播放器选择倍速快捷方式...
- android之服务
- 打印杨辉三角形知识点_用编程方法打印杨辉三角形
- Thread.yield()和Thread.sleep(0)
- 排序算法 快速排序 python 0913
- Win11键盘在哪里设置?Win11键盘的设置方法
- [转]VS2013+简单稀疏光束调整库SSBA配置(64位编译)
- 嵌入式软件工程师就只需会写C代码吗
- 计算机网络怎么算默认网关,ip地址子网掩码计算器_默认网关怎么计算_ip 掩码 网关的关系(2)...
- 学习编程需要学习什么?
- 第5章、解析Hello,world!知其然,更要知其所以然(从零开始学Android)
- Node.js 4493图片批量下载爬虫1.00
- php网页抓取浏览者手机号码_php 获取 手机浏览器的信息 获取手机号
- 精益软件度量之读书笔记(一)度量和组织目标
- 怎么定位门面位置_如何选择店面位置
- 大华摄像头实现web端实时播放以及录像回放
- Python基础学习之 os 模块详解
- SRS流媒体服务器:服务器读取RTMP推流数据
- vue3中实现放大镜效果,使用ref获取节点元素
- 整理 | 计算机听觉领域可以考虑发哪些期刊会议
热门文章
- GDAL 遥感 图像处理 锐化(Laplace算子、Sobel算子)
- 本周大新闻|FDA公布XR认证医疗名单,索尼推数字孪生平台Mapray
- 健身管理系统 -像微信一样简单的智能健身房管理系统
- c++中static的用法详解
- 私有5g网络_2020-2026全球与中国私有LTE和5G网络市场现状及未来发展趋势
- HTML 写代码流星雨
- 计算机专业如何自己增加项目经验?
- coursera 吴恩达 -- 第一课 神经网络和深度学习 :第三周课后习题 Key concepts on Deep Neural Networks Quiz, 10 questions
- 云上部署oracle rac,在青云上部署oracle rac全过程
- 运行中的程序突然出现Killed原因