Java开发笔记(一百四十一)JavaFX的列表与表格

下拉框只有在单击时才会弹出所有选项的下拉列表,这固然节省了有限的界面空间,但有时候又需要把所有选项都固定展示到窗口上。像这种平铺的列表控件,Swing给出的控件名称是ListBox,而JavaFX提供了列表视图ListView。在具体编码运用上,ListView的用法几乎跟ComboBox一模一样,二者的列表项拥有相同的数据来源,同样调用setStyle方法来设置各项字体,而且列表项的选择监听器也保持一致,唯一的区别便是控件名称由ComboBox改成了ListView。
既然ListView的用法与ComboBox雷同,这里就不再罗嗦了,仍旧以快餐列表为例,且看下面的ListView使用代码片段:

// 获取列表的界面
private void getListView(BorderPane borderPane) {
	VBox vbox = new VBox(); // 创建一个垂直箱子
	// 初始化快餐列表
	List<String> snackList = Arrays.asList("鱼香肉丝饭", "香菇滑鸡饭", "黑椒牛排饭",
			"梅菜扣肉饭", "糖醋里脊饭", "红烧排骨饭", "台式卤肉饭");
	// 把清单对象转换为JavaFX控件能够识别的数据对象
	ObservableList<String> obList = FXCollections.observableArrayList(snackList);
	ListView<String> listView = new ListView<String>(obList); // 依据指定数据创建列表视图
	//listView.setItems(obList); // 设置列表视图的数据来源
	listView.setPrefSize(400, 180); // 设置列表视图的推荐宽高
	Label label = new Label("这里查看点餐结果"); // 创建一个标签
	label.setWrapText(true); // 设置标签文本是否支持自动换行
	vbox.getChildren().addAll(listView, label); // 把列表和标签一起加到垂直箱子上
	// 设置列表视图的选择监听器
	listView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
		@Override
		public void changed(ObservableValue<? extends String> arg0, String old_str, String new_str) {
			// getSelectedIndex方法可获得选中项的序号,getSelectedItem方法可获得选中项的对象
			String desc = String.format("您点了第%d项,快餐名称是%s
  • 9
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值