2016-07-01 14 views
2

아래는 내 TreeTableView입니다. 보시다시피 레벨을 축소하는 확장 화살표는 데이터와 일치하지 않습니다.JavaFX : 행 내용에 treetableview 확장 화살표 정렬

enter image description here 나는 한 줄로 만들고 싶습니다. 그러나 그것을하는 방법을 모른다. 나는 CSS에서 다음과 같은 방법을 시도했지만 그것의 아무도 작동합니다.

.tree-table-row-cell .arrow { 
    -fx-alignment: CENTER; 
    -fx-mark-color:red; 
} 
.tree-table-row-cell .arrow-button { 
    -fx-alignment: CENTER; 
    -fx-mark-color:blue; 
} 

.tree-table-cell .arrow { 
    -fx-alignment: CENTER; 
    -fx-mark-color:yellow; 
} 
.tree-table-cell .arrow-button { 
    -fx-alignment: CENTER; 
    -fx-mark-color:green; 
} 
.tree-table-cell > .arrow-button >.arrow{ 
    -fx-alignment: CENTER; 
    -fx-mark-color:purple; 
} 
.tree-table-row-cell > .arrow-button >.arrow{ 
    -fx-alignment: CENTER; 
    -fx-mark-color:grey; 
} 

누구에게 어떻게하면 좋을까요?

+0

기본 동작은 선이 수직 마커에 일치하는지입니다. 그러나 당신은 이것을 감염시키는 다른 CSS에서 마커 또는 글꼴의 정렬을 변경했습니다. 그것이 fxml이고 scenebuilder를 이미 가지고 있다면, 장면 분석기의 "CSS Analyzer"-Feature를 사용하여 분석하십시오. 기본값이 무시되면 표시됩니다. – NwDev

답변

2

완벽하지는 않습니다 (이 질문 이후로 1 년 반이 지났습니다).하지만 똑같은 일을해야했습니다. 이것이 내가 생각해 낼 수있는 최선입니다.

화살표가 이미 가운데 맞춤되어 있고 스타일이 추가 된 후에 다시 정렬되지 않으므로 셀 내용이 커지면 스타일이 해제되어 버립니다. (내 셀 값 중 하나는 큰 셀 크기를 사용하기 때문에 셀의 값이 보통 내 사용자에게는보기 힘들 기 때문에 빼기 기호입니다.)

Scenic View 나는 화살표 노드 주위에 wrapper가 있다는 것을 발견했다. .tree-disclosure-node. (Scenic View는 이미 중심에 놓여있는 것을 알 수있는 방법이기도합니다.) 그래서 나는 그 래퍼에 몇 가지 최상위 패딩을 추가했습니다.

화살표를 크게 채우려고하기 때문에 화살표 자체를 채우려 고 귀찮게하지 마십시오.

이렇게하면 도움이되기를 바랍니다.

.tree-disclosure-node { 
    -fx-padding: 15 5 0 5; 
} 

enter image description here