2012-06-13 5 views
2

CSS를 통해 스타일 컨트롤에 올바른 속성을 사용하지 않아서 저 였는지 확신 할 수 없었습니다. 하지만 오늘은 Ensemble 응용 프로그램의 예제 중 하나를 테스트하여 그 중 하나에서 작동하지 않는 것으로 나타났습니다.일부 CSS 속성이 JavaFX 2.1에서 제대로 작동하지 않습니다.

내가 바로 설정하는 것이 가장 어려운 찾을 하나입니다 : 아무리 내가 거기는 무엇을 넣어

#pill-left:selected .label { 
/* -fx-text-fill: black; */ 
-fx-text-fill:red; 
-fx-effect: dropshadow(one-pass-box , white , 0, 0.0 , 0 , 1); 
} 

: 예를 들어, 레이블의 텍스트 색상을 변경하려면 을 -fx 텍스트가-채우지 텍스트는 항상 기본값 색을 사용합니다.

JavaFx 2.1을 사용하고 있습니다. 어쩌면 이것은 2.2에서 이미 고쳐 졌을 지 모르지만, 나는 그것이 아주 기본적인 것이기 때문에 그것을 지적해야만한다고 생각합니다.

+0

'# pill-left .label {}'만 사용해 보셨습니까? 왜냐하면 레이블이나 노드의 ": selected"의사 클래스가 있다고 생각하지 않기 때문입니다. –

+0

예, 저도 시도해 보았습니다. 성공하지 못한 다른 많은 것들 – betaman

+0

코드에서 "pill-left"를 어떻게 사용하고 있는지 궁금하십니까? –

답변

2

확인의 -fx-fill: red;를 사용할 필요가있는 workarround, 나는 그것이 스타일 시트를 사용하여 작동하도록 관리. 필요에 따라 (등, 선택 :, 가 가져 )

의 핵심은 국가가 추가의 .label 속성을 제거하고 바로 컨트롤의 ID를 사용하는 것입니다.

#pill-left { 
    -fx-padding: 5; 
    -fx-text-fill:red; 
    -fx-border-image-source: url("left-btn.png"); 
    -fx-border-image-slice: 4 4 4 4 fill; 
    -fx-border-image-width: 4 4 4 4; 
    -fx-border-image-insets: 0; 
    -fx-border-image-repeat: stretch; 
    -fx-background-color: null !important; 
} 

#pill-left:hover, #pill-left:hover:selected { -fx-text-fill:blue; } 
#pill-left:selected { 
    -fx-text-fill:green; 
    -fx-border-image-source: url("left-btn-selected.png"); } 

이것은 모두 앙상블 프로젝트에서 직접 가져온 코드 예제를 기반으로하므로 올바른 것으로 가정합니다. 많은 프로그래머들이이 문제에 대해했던 것처럼 자신의 머리카락을 뽑아 내고 있습니다.

아무튼, 이것은 Javafx에서 styleSheets를 사용하는 방법에 대해 배웠던 중요한 교훈이며, ID 이외의 다른 것을 사용하여 가능한 경우 텍스트 색상과 같은 일부 속성을 지정하는 것을 피할 수 있습니다.

5

95 % 확실한 오류입니다.

일부 광범위한 테스트 후, 대신 -fx-fill-text

+0

betaman이 게시 한 예제는 레이블 CSS 선택기입니다. -fx-text-fill은 레이블에 대해 작동해야합니다. -fx-fill은 도형 노드를위한 것이며 텍스트는 도형이지만 Label은 그렇지 않습니다. – jewelsea

+0

@jewelsea는 "yes"로 작동해야합니다. 버그 일 수 있습니다. 그러나 사양. CSS는 JavaFX 2.0에서 제공되므로 상황이 변경되었을 수 있습니다. 즉, 내 대답은 일터 라 할 수 있습니다. (비 버그 가정을 편집했습니다) – eversor

+0

JavaFX CSS 2.1 사양은 현재 http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html에 있습니다 (여기는 나는 나의 정보를 얻는다). – jewelsea

관련 문제