JavaFX Scene Builder ListView的使用 四(ListView之间的数据转移)

首先推荐款免费的云服务器三丰云 个人感觉不错 可以百度自行搜索

先拖拽两个 ListView 和两个button 并设置id
在这里插入图片描述
Contronller 类

    @FXML
	private ListView<String> listView;
	@FXML
	private ListView<String> listView1;
	@FXML
	private Button btnCopy;
	@FXML
	private Button btnCopy1;
	//定义两个集合
	ObservableList<String> ls=FXCollections.observableArrayList();
    ObservableList<String> ls1=FXCollections.observableArrayList();

给一个ListView 赋值

listView.getItems().add("1111");
		listView.getItems().add("2222");
		listView.getItems().add("3333");
		listView.getItems().add("4444");
		listView.getItems().add("5555");
		listView.getItems().add("6666");
		listView.getItems().add("7777");
		listView.getItems().add("8888");
		listView.getItems().add("9999");
		listView.getItems().add("1010");
		listView.getItems().add("1111");
		listView.getItems().add("1212");
		listView.getItems().add("1313");
		listView.getItems().add("1414");
		listView.getItems().add("1515");

设置个hover效果

listView.setCellFactory(new Callback<ListView<String>, ListCell<String>>() {

		@Override
		public ListCell<String> call(ListView<String> param) {

			Label label=new Label();
			ListCell<String> cell=new ListCell<String>(){

				@Override
				protected void updateItem(String item, boolean empty) {
					super.updateItem(item, empty);
					if(empty==false&& item!=null){//有值的情况下 给label设值
						label.setText(item);
						this.setGraphic(label);
					}
				}

			};

			//hover监听
			cell.hoverProperty().addListener(new ChangeListener<Boolean>() {

				@Override
				public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue,
						Boolean newValue) {
					if(newValue==true){//有值的情况下
						int index=param.getItems().indexOf(label.getText());//获取当前下标
						param.getFocusModel().focus(index);//设置边框
						label.setPrefHeight(30);//字体高度
						label.setFont(new Font(18));
						//label.setStyle("-fx-background-color:#ffff55");
						//label.setBackground(new Background(#984B4B));
					}else{
						label.setPrefHeight(22);
						label.setFont(new Font(12));
					}
				}
			});
			return cell;
		}
	});

效果如下:
在这里插入图片描述
//监听listView选中的值
listView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {

				@Override
				public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
					ls.clear();
					ls.add(newValue);
				}
			});
			//监听listView1选中的值
			listView1.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {

				@Override
				public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
					ls1.clear();
					ls1.add(newValue);
				}
			});
			btnCopy.setOnAction(new EventHandler<ActionEvent>() {

				@Override
				public void handle(ActionEvent arg0) {
					listView1.getItems().addAll(ls);//新值加入
					listView.getItems().removeAll(ls);//删除旧的
					ls.clear();
				}
			});
			btnCopy1.setOnAction(new EventHandler<ActionEvent>() {

				@Override
				public void handle(ActionEvent arg0) {
					listView.getItems().addAll(ls1);//新值加入
					listView1.getItems().removeAll(ls1);//删除旧的
					ls1.clear();
				}
			});

效果如下 单机选中4444
在这里插入图片描述
点击>按钮
在这里插入图片描述
数据也可以回去的 一样的 选中1010
在这里插入图片描述
点击<按钮
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值