2013-01-17 10 views
10

나는 Tab과 함께 TabPane을 가지고 있습니다. Tab의 작업 결과가 실패한 경우 LabelFill 빨강으로 설정하거나 텍스처를 해시 할 수 있도록 설정하려고합니다 (색맹 인 경우). Color을 나중에 다시 기본값으로 재설정하려고합니다.JavaFX에서 탭 레이블의 색이나 질감을 프로그래밍 방식으로 설정하는 방법은 무엇입니까?

여기에서 몇 가지 질문을 읽은 후 스타일 시트를 사용하여 정적으로 설정할 수 있습니다.

#MyTabPane .tab *.tab-label { 
    -fx-text-fill: white; 
} 

어떻게 하나가 Tablabel에 액세스하고 동적으로 /이 색의 질감을 설정합니다? ELLTZ 어떻게 사용 인라인 스타일은 위에서 언급 한 수

BY

tab.setStyle("??");

추가는 또한의 Paint 모두 스타일 클래스 tab-labelLabelButton (StackPane) tab-close-button

을 변경하려면 코드 예제 필요

답변

11

그래픽을 설정하고 나를 위해 트릭 한 스타일링 :

Tab tabB = new Tab(); 
tabB.setText(""); 
tabPane.getTabs().add(tabB); 
tabB.setStyle("-fx-border-color:red; -fx-background-color: blue;"); 
tabB.setGraphic(new Label("Tab B")); 
tabB.getGraphic().setStyle("-fx-text-fill: #c4d8de;"); 
+0

감사합니다. 놀랍게도 tab1.setGraphic (imageView), tab2.setGraphic (imageView)을 수행하면 그래픽이 tab1에서 tab2로 전환됩니다. 하나의 탭에만 그래픽이 있습니다. – likejiujitsu

+1

Node가 항상 SceneGraph에서 한 번만 존재할 수 있기 때문에 놀랍지 않습니다. "그래픽"은 노드와 마찬가지로 SceneGraph의 일반 노드입니다. – Sebastian

+1

당신이 왜 처음부터 '그래프'라고 부르는 지 궁금해하게 만듭니다. 하지만 그렇습니다. 그렇습니다. 그렇기 때문에 ImageView에 부모가 하나 밖에 없을 수 있습니다. –