는 그리드의 경계에 그림자를 추가 할 그리드 패널의 경계에 DropShadow를 추가 여기에 효과를 보여주는 화면의 이미지입니다.는 내부 하위 요소</p> <p><img src="https://i.stack.imgur.com/OGRHv.png" alt="enter image description here"> 에없는 창에만 자바 FX 2.2
답변
StackPane을 사용하고 GridPane을 배치하십시오.
CSS로 StackPane에 스타일을 지정하여 배경색, 인세 트 및 그림자를 적용하십시오.
일부 샘플 CSS는 Drop Shadow in an undecorated Pane! JAVAFX을 참조하십시오.
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class Shadowed extends Application {
public static void main(String[] args) { launch(args); }
@Override
public void start(Stage stage) throws Exception {
Label clear = new Label("Clear, with no shadow");
StackPane shadowedPane = new StackPane(clear);
shadowedPane.setStyle(
"-fx-background-color: palegreen; " +
"-fx-background-insets: 10; " +
"-fx-background-radius: 10; " +
"-fx-effect: dropshadow(three-pass-box, purple, 10, 0, 0, 0);"
);
shadowedPane.setPrefSize(200, 50);
stage.setScene(new Scene(shadowedPane));
stage.show();
}
}
추가 질문
인가를 주소 : 여기
는 효과를 입증하기 위해, (OS X 10.9에 자바 8b120 사용)하는 작은 독립 샘플 응용 프로그램입니다 CSS는 유일한 옵션입니까?
아니요, 이것은 CSS 대신 코드로 DropShadow 효과를 사용하여 수행 할 수 있습니다.
shadowedPane.setEffect(new DropShadow(10, Color.PURPLE));
왜 작동합니까?
배경을 설정하면 섀도우 효과가 적용되는 노드에 가장자리가 명확 해지기 때문에.
왜 DropShadow는 루트 노드 또는 중첩 된 컨테이너에 적용되는지에 따라 다르게 작동합니까?
루트 노드 또는 중첩 컨테이너 간의 그림자 처리에는 실제 동작이 다릅니다. 그림자 효과는 효과가 적용된 항목이 투명 (또는 null) 배경인지 여부에 따라 다릅니다. 루트 노드는 일반적으로 스테이지를 채 웁니다. 따라서 루트 노드가 투명하지 않은 배경색을 가지며 인세 트가 제공되지 않으면 루트 노드의 그림자는 스테이지의 보이는 영역 밖으로 떨어지기 때문에 보이지 않습니다.
나는 무슨 일이 일어나고 있는지 추측 할 수 있습니다. 나는 그림자 효과가 노드의 외부 모양을 계산하고 그 위에 그림자를 적용하는 것으로 생각합니다. 노드에 배경색이 있으면 노드 배경의 그림자가 보입니다. 이는 제공된 이미지에서 보이는 것입니다. 노드에 배경색이 없으면 노드의 가장자리가 자식 노드에서 계산되므로 모든 자식이 그림자를 갖습니다.
이제는 질문을 받았을 때 JavaFX 2.2와 JavaFX 8 사이에서 JavaFX의 기본 테마가 Caspian에서 Modena로 옮겨졌습니다. 카스피 니아 창에는 기본적으로 배경색이 없습니다. 그러나 Modena의 경우 창에는 기본적으로 약간 회색 배경색이 있습니다. 즉, GridPane은 내부 텍스트가 음영 처리되는 대신 음영 처리 된 배경을 갖기 때문에 격자 패널 내부의 원래 포스터의 모호한 텍스트는 기본적으로 Java 8에서 발생하지 않습니다.이것은 다음과 같은 프로그램을 실행하고 카스피해에 스타일 시트 설정을위한 주석 라인을 변화를 통해 확인 할 수 있습니다
import javafx.application.Application;
import javafx.geometry.HPos;
import javafx.geometry.VPos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.effect.DropShadow;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Priority;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class Shadowed extends Application {
public static void main(String[] args) { launch(args); }
@Override
public void start(Stage stage) throws Exception {
// setUserAgentStylesheet(STYLESHEET_CASPIAN);
Label clear = new Label("Clear, with no shadow");
GridPane shadowedPane = new GridPane();
shadowedPane.add(clear, 0, 0);
GridPane.setHalignment(clear, HPos.CENTER);
GridPane.setValignment(clear, VPos.CENTER);
GridPane.setHgrow(clear, Priority.ALWAYS);
GridPane.setVgrow(clear, Priority.ALWAYS);
shadowedPane.setStyle(
// "-fx-background-color: transparent; " +
// "-fx-background-color: palegreen; " +
"-fx-background-insets: 10; " +
"-fx-background-radius: 10; "
);
shadowedPane.setPrefSize(200, 50);
shadowedPane.setEffect(new DropShadow(10, Color.PURPLE));
stage.setScene(new Scene(shadowedPane));
stage.show();
}
}
jewelsea의 대답은 정확하지만 그것이 작동하지 않을 수 있음을 양해 해 주시기 바랍니다을 때
// explicitly transparent
-fx-background-color: transparent;
또는
// effectively transparent
-fx-background-color: #FFFFFF00;
당신이 (스택) 패널의 전체 경계 상자 영역에 그림자를 적용하려고하지가 치 있다면 이건 정말 실망하실 수 있습니다 내용! 투명하지 않은 배경색을 설정하면 효과가 있지만 여러 요소가 나란히 있거나 서로 가깝게 놓여있는 경우 드롭 그림자와 함께 바람직하지 않은 중첩 효과가 나타날 수 있습니다.
- 1. 루비 : <img src="https://i.stack.imgur.com/QI3Sx.png" alt="enter image description here"></p> <p>:
- 2. 제대로 <img src="https://i.stack.imgur.com/f6hY3.jpg" alt="enter image description here"></p> <p>
- 3. JDBC는</p><img src="https://i.stack.imgur.com/CYIpw.jpg" alt="enter image description here"><p>
- 4. 나는이</p> <p><img src="https://i.stack.imgur.com/MIU6O.png" alt="enter image description here"></p> <p>같은 것을 싶어
- 5. 이클립스 내가 CentOS는 (리눅스)에 <img src="https://i.stack.imgur.com/eYBIj.png" alt="enter image description here"> 을 안드로이드 SDK를 설정하지만 내가 <img src="https://i.stack.imgur.com/oPsbF.png" alt="enter image description here"> 를 얻을 안드로이드 SDK
- 6. 선택 열은</p> <p><img src="https://i.stack.imgur.com/SfIzn.jpg" alt="enter image description here"></p> <p>내가 아는,
- 7. 는 가 <img src="https://i.stack.imgur.com/VvQky.png" alt="enter image description here"></p> <p>(이미지가 조금 거친지만 보여줍니다 Windows.Shapes.Path
- 8. PGT 및 PGTIOUs 저장 CAS 생성
- 9. github api는 사용자의 URL을 가져 오는 방법을 제공합니까?</p> <p><img src="https://i.stack.imgur.com/9TRZs.png" alt="enter image description here"> : 예를 들어
- 10. 텍스트 뷰의 커서 위치는 <p><img src="https://i.stack.imgur.com/j5GK5.png" alt="enter image description here"></p> <p><img src="https://i.stack.imgur.com/Qptlo.png" alt="enter image description here"></p> <p>// NoteView 목적 _C 클래스</p>는 슈퍼 클래스는 텍스트 뷰입니다 ... 수평선
- 11. 사용자 정의 I이</p> <p><img src="https://i.stack.imgur.com/iaGSo.png" alt="enter image description here"></p> <p><img src="https://i.stack.imgur.com/7fvsi.png" alt="enter image description here"></p> <p>과 같은 필터링 콤보를 만들 필요가 콤보
- 12. , 설명은</p> <p><img src="https://i.stack.imgur.com/C3vmW.png" alt="enter image description here"></p> <p>워크 시트의 일부로서 사용하여, 나는 오류</p> <p><img src="https://i.stack.imgur.com/DINv9.png" alt="enter image description here"></p> <p>왜이 부디 참조
- 13. 안드로이드 :</p> <p><img src="https://i.stack.imgur.com/t8ffX.jpg" alt="enter image description here"></p> <p>내가 원하는 것은 :</p> <p><img src="https://i.stack.imgur.com/LpPc4.jpg" alt="enter image description here"></p> <p>나는 테마를 변경 시도
- 14. ELF 파일의 어느 부분을 메모리에로드해야합니까?</p> <p><img src="https://i.stack.imgur.com/V7Cu6.png" alt="enter image description here"></p> <p><img src="https://i.stack.imgur.com/oi9jf.png" alt="enter image description here"></p> <p>두 이미지 위에 위치 :
- 15. - 오브젝트 기능이 <img src="https://i.stack.imgur.com/dVFRD.jpg" alt="enter image description here"></p> <p> 어떻게 파이썬에서 코딩하는 경우 어떻게
- 16. jQuery를-UI는 :</p> <p><img src="https://i.stack.imgur.com/Nbg6u.jpg" alt="enter image description here"> : 스타일 시트
- 17. 어떻게 ↓</p> <p><img src="https://i.stack.imgur.com/unowm.jpg" alt="enter image description here"> 아래 그 디렉토리의 사진의 링크를 볼 수 있습니다 너무
- 18. 폰갭 IOS 기본 날짜 선택기 플러그인 <p>이것은 <img src="https://i.stack.imgur.com/bebyr.png" alt="enter image description here"></p>
- 19. 이 jQuery가 작동하지 않는 이유는 무엇입니까? <img src="https://i.stack.imgur.com/zUJLs.jpg" alt="enter image description here"></p> <p>
- 20. <img src="https://i.stack.imgur.com/bw7eT.png" alt="enter image description here"></p> <p>PDF 파일로 확대
- 21. 유니티 3D는 : 장치 메모리에서 이미지를로드하면 <img src="https://i.stack.imgur.com/sIQKd.jpg" alt="enter image description here"></p> <p>참고로 .. 물음표
- 22. 그림에서 경로의 길이 (곡선)를 찾는 방법은 무엇입니까? <img src="https://i.stack.imgur.com/EOKfS.jpg" alt="enter image description here"></p> <p>I :
- 23. 이 같은 <img src="https://i.stack.imgur.com/6NmbT.png" alt="enter image description here"></p> <p>뭔가 아래에있는 옵션을 선택 같은 집회
- 24. 를 NSTextView는 텍스트를 포함하는 <p><img src="https://i.stack.imgur.com/7DTTA.png" alt="enter image description here"></p>
- 25. 이 (VBA) 엑셀 : <img src="https://i.stack.imgur.com/GQn4e.jpg" alt="enter image description here"></p> <p>그래서 나는이 칼럼에서이 두 열의 내용이
- 26. MKUserTrackingBarButtonItem의 스타일을 지정하려면 어떻게해야합니까? <p><img src="https://i.stack.imgur.com/WFlEg.png" alt="enter image description here"></p>
- 27. 첨부 이미지 <img src="https://i.stack.imgur.com/vCKqH.png" alt="enter image description here"></p> <p>같이 이미지의 iOS SDK
- 28. UITableView에서 "제목"셀을 만드는 방법? <img src="https://i.stack.imgur.com/nPMO2.png" alt="enter image description here"></p> <p>:
- 29. 안드로이드 플러그인은 <img src="https://i.stack.imgur.com/W6WYY.png" alt="enter image description here"></p> <p>을 무슨 일이야 ... 응용 프로그램 이름
- 30. Google Glass 항목에서 첨부 파일을 가져 오는 방법은 무엇인가요? <img src="https://i.stack.imgur.com/7QZAU.png" alt="enter image description here"></p> <p>참고 :
@jewslsea 2childs를 사용하여 stackpane을 작성하는 것과 동일한 기술을 사용하는 제 경우에는 작동하지 않으며 제 2는 내 그리드 패널이지만 어린이 전용으로 적용된 것과 동일합니다. –
간단한 솔루션으로 추가 샘플을 추가했습니다. – jewelsea
CSS는 유일한 옵션입니까? 왜 작동합니까? 'DropShadow'는 루트 노드 또는 중첩 된 컨테이너에 적용되는지에 따라 다르게 작동하는 이유는 무엇입니까? – Itai