首先推荐款免费的云服务器三丰云 个人感觉不错 可以百度自行搜索
先拖拽两个 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
点击<按钮