当前位置: 首页 > news >正文

Java语言程序设计基础篇_编程练习题*16.16(使用ComboBox和ListView)

目录

题目:*16.16(使用ComboBox和ListView)

习题思路

示例代码

 结果展示


题目:*16.16(使用ComboBox和ListView)

编程一个程序,演示在列表中选择的条目。程序用组合框指定选择方式,如图16-43a所示。当选择条目后,列表下方的标签中就会显示选定项。

  • 习题思路
  1.  创建一个HBox,新建一个ComboBox,内容为("MULTIPLE"和"SINGLE"),绑定在一个Label中。
  2.  新建一个ListView,在列表中添加几个国家的名字
  3. 创建一个BorderPane,将HBox设置在顶部,把ListView设置在中心
  4. 创建一个HBox,新建一个Text并添加到布局中。
  5. 为ComboBox注册一个事件,当事件被触发时,如果组合框内选择的是MULTIPLE,那么将ListView的选择模式设置为SelectionMode.MULTIPLE,SINGLE相同。
  6. 为listView注册事件,用getSelectionModel()方法获取到列表中的选中项(详细请看代码示例)
  • 示例代码

编程练习题16_16UseComboBoxAndListView.java 

package chapter_16;import javafx.application.Application;
import javafx.collections.ObservableList;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.SelectionMode;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;public class 编程练习题16_16UseComboBoxAndListView extends Application{private Text text = new Text();private String s = "";private ListView<String> listView = new ListView<>();@Overridepublic void start(Stage primaryStage) throws Exception {String[] items = {"China","Japan","Korea","India", "Malaysia","Vitnam","Thailand", "Mongolia","France", "Bhutan","Malaysia"};HBox hBox = new HBox();hBox.setAlignment(Pos.CENTER);ComboBox<String> cboMode = new ComboBox<String>();cboMode.getItems().addAll("MULTIPLE","SINGLE");cboMode.setValue("SINGLE");Label lbMode = new Label("Choose Selection Mode:",cboMode);lbMode.setContentDisplay(ContentDisplay.RIGHT);hBox.getChildren().addAll(cboMode,lbMode);HBox hBox2 = new HBox(text);listView.getItems().addAll(items);BorderPane borderPane = new BorderPane();borderPane.setTop(hBox);borderPane.setCenter(listView);borderPane.setBottom(hBox2);cboMode.setOnAction(e ->{String value = cboMode.getValue();if(value.equals("MULTIPLE"))listView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);else if (value.equals("SINGLE")) listView.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);});listView.getSelectionModel().selectedItemProperty().addListener((obs, oldSelection, newSelection) -> {if (newSelection != null) {ObservableList<String> selectedItems = listView.getSelectionModel().getSelectedItems();if(cboMode.getValue().equals("SINGLE")) {s = newSelection+" ";}else if(cboMode.getValue().equals("MULTIPLE")) {s = "";for(String s2:selectedItems) {s += s2+" ";}}text.setText("Selected items are "+s);selectedItems.forEach(System.out::println);//输出元素以便于检查}});Scene scene = new Scene(borderPane,250, 150);primaryStage.setTitle("编程练习题16_16UseComboBoxAndListView");primaryStage.setScene(scene);primaryStage.show();}public static void main(String[] args) {Application.launch(args);}
}
  •  结果展示

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 网络编程day3
  • Java中金额转换处理(转大写,三位一逗)
  • 您知道有哪些主流的大模型LLM开源项目吗?
  • Marmir,一个超牛的Python库
  • 力扣题/图论/岛屿数量
  • 【大数据】智慧园区大数据云平台整体建设方案(Word原件)
  • 【Python学习-UI界面】PyQt5 小部件14-QDock 子窗口
  • Redis常见的数据类型和应用场景
  • 一、在cubemx上配置sd和fatfs示例演示
  • 聚观早报 | 一加13配置细节曝光;谷歌首推人工智能手机
  • 单元训练09:定时器实现秒闪功能
  • 必看!亚马逊卖家如何利用自养号测评策略提升买家评价与销量
  • 第四范式发布AI+5G视频营销产品 助力精准获客与高效转化
  • 面对复杂订单统计,如何用这款工具化整为零?
  • 光影漫游者:开创沉浸式体验新纪元—轻空间
  • 分享一款快速APP功能测试工具
  • 【刷算法】从上往下打印二叉树
  • 2017 前端面试准备 - 收藏集 - 掘金
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • chrome扩展demo1-小时钟
  • Java,console输出实时的转向GUI textbox
  • java第三方包学习之lombok
  • JS基础之数据类型、对象、原型、原型链、继承
  • Puppeteer:浏览器控制器
  • Python十分钟制作属于你自己的个性logo
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Vue2 SSR 的优化之旅
  • Vue官网教程学习过程中值得记录的一些事情
  • yii2中session跨域名的问题
  • Zsh 开发指南(第十四篇 文件读写)
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 技术发展面试
  • 盘点那些不知名却常用的 Git 操作
  • 双管齐下,VMware的容器新战略
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 《天龙八部3D》Unity技术方案揭秘
  • NLPIR智能语义技术让大数据挖掘更简单
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 阿里云移动端播放器高级功能介绍
  • ​马来语翻译中文去哪比较好?
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • #单片机(TB6600驱动42步进电机)
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (02)Unity使用在线AI大模型(调用Python)
  • (2)nginx 安装、启停
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (南京观海微电子)——I3C协议介绍
  • (详细文档!)javaswing图书管理系统+mysql数据库
  • (一) 初入MySQL 【认识和部署】
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (转)socket Aio demo
  • ****Linux下Mysql的安装和配置
  • .NET Core WebAPI中封装Swagger配置
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .Net MVC4 上传大文件,并保存表单