2017-10-06 7 views
0
ListView<ChatModel> listView; 
ObservableList<ChatModel> items = FXCollections.observableArrayList(); 

private final Image IMAGE_MEN = new Image("men.png"); 
private final Image IMAGE_WOMEN = new Image("women.png"); 

private Image[] listOfImages = {IMAGE_MEN, IMAGE_WOMEN}; 

listView = new ListView<ChatModel>(); 
     listView.setPrefHeight(550); 
     listView.setItems(items); 

     listView.setCellFactory(param -> new ListCell<ChatModel>() { 
      private ImageView imageView = new ImageView(); 

      @Override 
      public void updateItem(ChatModel name, boolean empty) { 
       super.updateItem(name, empty); 
       if (empty) { 
        setText(null); 
        setGraphic(null); 
       } else { 
        if (name.getClientName().equals("testing")) 
         imageView.setImage(listOfImages[0]); 
        else if (name.getClientName().equals("testing1")) 
         imageView.setImage(listOfImages[1]); 
        setText(name.getClientMessage()); 
        setGraphic(imageView); 
       } 
      } 
     }); 

위의 코드를 사용하면 listview에서 이미지와 텍스트를 사용하여 항목을 추가하지만 목록보기의 디자인은 왼쪽에 있습니다. 모든 행에 측면. 대체 행에는 다른 디자인이 있어야한다는 요구 사항이 있습니다. 다음 행에는 오른쪽 요소가 있어야합니다. 여기 ListView에서 대체 행의 왼쪽과 오른쪽에 이미지 및 텍스트 JavaFX

내가 왼쪽과 오른쪽에 다른 행을 원하는 지금

image of list view

까지 달성 한 같은 디자인입니다.

아무도 말해 줄 수 없습니까?

답변

2

당신은 CSS와 그것을 달성 할 수

  • odd :

    .list-view .list-cell:odd { 
        -fx-content-display:left; 
    } 
    
    .list-view .list-cell:even { 
        -fx-content-display:right; 
    } 
    

    셀렉터는 ListCell의 의사 상태에 따라 -fx-content-display 속성을 설정 텍스트는 왼쪽 - 그래픽 권리

  • even : grahic left-text right

+0

어떻게 설정할 수 있습니까? 나는 listView.getStylesheets()를 시도했다. add ("list-view"); 하지만 작동하지 않았습니다. –

+0

[튜토리얼] (http://docs.oracle.com/javafx/2/css_tutorial/jfxpub-css_tutorial.htm)의 "스타일 목록 만들기"섹션. 예 : 만약 당신이'Application' 소스 옆에'app.css'를 가지고 있다면, 다음을 호출 할 수 있습니다 :''scene.getStylesheets(). add (getClass(). getResource ("app.css"). toString()); – DVarga

+0

scene.getStylesheets(). add ("ChatStyle.css"); & listView.getStyleClass(). add ("list-view"); 나는 시도했지만 나를 위해 일하지 않는다 –