2014-07-22 5 views
0

나는 며칠 동안 이것에 대해 내 머리를 두들겨 맞 혔지 만 나는 google에 대한 질문에 대한 정답을 찾을 수 없다. CSS가 많이 있지만 일반적인 CSS 도메인에서 JavaFX CSS 도메인으로 넘어가는 것을 실제로 알지 못합니다 (어떤 것이 든 실제로 무엇이든하는 것이 확실합니다).JavaFX에서 CSS를 통해 텍스트에 Embossed (제기 된 문자) 효과를 얻으려면 어떻게해야합니까?

나는 기능적으로 버튼이라는 라벨을 가지고 있습니다. CSS에 반영된 3 개의 상태가 있습니다 :

1 : 유휴, 특별한 것은 없습니다. 2 : Hovered 여기가 "제기 된"텍스트로 나타나기를 원합니다. 3 : 눌려 짐 : 나는 이것을 알아낼 수있었습니다.

.label:hovered{ 
    //What goes in here to make the text appear embossed (raised) when the cursor 
    //is hovering over it? 
} 

나는 -fx-effect : innershadow(...)을 시도했지만 정말 이상적인 원하는 효과를 제공하지 않는 : 나는 다음과 같은 CSS를 맴돌고를 들어

.

편집 : : 약간의 명료성을 위해 this은 내가 할 일 (# 3 참조)입니다. 나는 CSS를 시도했지만 작동하지 않았다. 당신은 Lighting 효과를 사용할 수 있습니다

Idle Hovering enter image description here

+0

이것이 어떤 모양인지 생각해 보는 것이 유용 할 것입니다. 세 주에 대한 이미지가 있습니까? –

답변

0

여기의 Oracle tutorial on lighting에 대한 링크입니다 :

컨트롤의 모양은 지금 이렇게이다.

lighting

효과

당신은 코드 또는 XML을 통해 그것을 적용 할 수있는 자바 8에 CSS를 통해 적용 할 수 없습니다.

노드의 hover property에 리스너를 추가하여 노드 효과를 null로 설정하고 조명 효과를 노드 효과로 설정하여 조명을 끌 수 있습니다.

Light.Distant light = new Light.Distant(); 
light.setAzimuth(-135.0); 

Lighting lighting = new Lighting(); 
lighting.setLight(light); 
lighting.setSurfaceScale(5.0); 

Text text = new Text(); 
text.setText("JavaFX!"); 
text.setFill(Color.STEELBLUE); 
text.setFont(Font.font(null, FontWeight.BOLD, 60)); 
text.setX(10.0); 
text.setY(10.0); 
text.setTextOrigin(VPos.TOP); 
text.setEffect(lighting); 

드롭 그림자도 일하는 것이 당신이 원하는 것을 달성하기 위해 가능성이있는 다른 방법이 약간 변화하는 모든있다 :

난 그냥 여기에 재현 한 자바 FX javadoc on Lighting에서 예제 코드가있다 결과.

+0

그림자가 내가 가려는 것입니다. 그것은 충분히 잘 작동하고 정말로, 정말 코드에서 물건을 설정하려고 시도하고 싶지 않습니다. – Will

+0

OK, CSS 만 사용하려는 경우 드롭 섀도우를 사용하는 것이 가장 좋습니다. 심지어 코드에서, 좋은 엠 보스 효과를 얻는 것은 조금 어려운 IMO이고, 조명의 출력은 멋지지만 실제로 엠보싱 된 것과 같지 않습니다. – jewelsea