javaFX listview 选中变色

javaFX listview 选中当前条目变色,之前已经选中的上一个条目恢复成白色 怎么操作。

package im.listcell;

import im.base.BaseEntity;
import im.entity.UserEntity;
import javafx.event.EventHandler;
import javafx.scene.control.ListCell;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.input.MouseButton;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.shape.Circle;
import javafx.scene.text.Text;

/**
 * 用户列表样式
 */
public class UserlistCell extends ListCell<BaseEntity>{
    private HBox content;
    private Text name;
    @Override
    protected void updateItem(BaseEntity item, boolean empty) {
     if(item!= null &&!empty){
         VBox vBox = new VBox();
         name = new Text(item.getName());
         vBox.getChildren().add(name);
         ImageView imageView = new ImageView();
         Image image = new Image(item.getUrl());
         Circle circle = new Circle();
         circle.setCenterX(30);
         circle.setCenterY(30);
         circle.setRadius(60);
         imageView.setFitWidth(30);
         imageView.setFitHeight(30);
         imageView.setImage(image);
         imageView.setClip(circle);
         content = new HBox(imageView,vBox);
         content.setSpacing(10);
         setGraphic(content);
         setOnMouseClicked(new EventHandler<MouseEvent>() {
             @Override
               public void handle(MouseEvent event) {
                 if(event.getClickCount()==2){
                  System.out.println("点击2次");
                 //变色
                  setStyle("-fx-background-color: #72b9da");
                 }else if(event.getClickCount()==1){
                  System.out.println("点击1次");
                 }

             }
         });
         
        }else{
         setGraphic(null);
     }

    }
}
阅读 1.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题