2016-06-13 4 views
0

여기에는 사각형이있는 ScrollPane으로 투명해야하는 스테이지가 생성됩니다.투명한 ScrollPane이있는 투명한 스테이지가 투명하지 않습니다.

enter image description here

이 단계는 새 창에서 팝업하지만 당신이 보는대로, 배경이 흰색 :

private Stage createStage() 
    { 
     Stage stage = new Stage(StageStyle.TRANSPARENT); 

     FlowPane flw = new FlowPane(); 
     flw.setBackground(Background.EMPTY); 

     Random gen = new Random(5); 
     for (int i = 0; i < 50; i++) 
     { 
      int size = 50 + gen.nextInt(50); 
      flw.getChildren().add(new Rectangle(size, size, Color.web("rgb(" + gen.nextInt(255) + "," + gen.nextInt(255) + "," + gen.nextInt(255) + ")"))); 
     } 

     ScrollPane root = new ScrollPane(flw); 
     root.setMaxSize(500, 500); 
     root.setBackground(Background.EMPTY); 

     Scene scene = new Scene(root, Color.TRANSPARENT); 
     stage.setScene(scene); 

     return stage; 
    } 

는 Stage.show()가 호출 될 때 위 코드의 출력 보이지 않습니다. 나는 단지 StageStyle.TRANSPARENT과 하나의 스퀘어를 가지고 있기 때문에 어떤 ScrollPane이나 FlowPane이든 흰색 배경없이 스퀘어 팝업을 만들었 기 때문에 문제가 있다고 느끼고 있습니다.

내가 뭘 잘못하고 있니? 나는 이미 일을 시도했다 :

Pane.setBackground(new Background(new BackgroundFill(Color.TRANSPARENT, CornerRadii.EMPTY, Insets.EMPTY)));

답변

1

그것은 당신의 ScrollPane 투명 배경을 수신하지 않는 뷰포트 때문이다

다음과 같은 CSS를 적용하는 경우 : 위에

.scroll-pane > .viewport { 
    -fx-background-color: transparent; 
} 

을 당신이 제공 한 코드는 아래와 같습니다 :

enter image description here


당신은 당신의 프로젝트와 현장에 스타일 시트를 추가해야합니다 : 스타일 시트가

scene.getStylesheets().add("stylesheet.css"); 

내가 할 수있는 CSS 디렉토리를 추가하는 것을 선호 src 디렉토리에있는 경우

예 더 구체적인 스타일 시트 나중에 수 :

scene.getStylesheets().add("CSS/stylesheet.css"); 

당신이 항아리에서 시작하는 경우, 당신은를 사용해야합니다 잊지 마세요 A)이 작업을 수행 :

스타일 시트를 추가, 당신은

+0

중 하나하는 방법을 어떤 생각을 읽기 쉽게 코드를해야하는 대신 CSS로 구현하여 스타일링에 사용되는 코드의 일부 Java 라인을 줄일 수 있습니다 CSS 또는 B없이)'myScrollpane.setStyle (StringHere); '형식으로 처리하십시오. – Hatefiend

+0

좋아, 나는 그 형식을하기 위해 CSS 파일을 인정하고 만들었다. 도와 줘서 고마워. 당신이 다른 가능한 방법으로 정교 할 수 있다면, 나는 매우 감사 할 것입니다. – Hatefiend

+0

대체물 인 [this] (https://docs.oracle.com/javase/8/javafx/api/javafx/scene/Node.html#lookup-java.lang.String-)에서 읽을 수 있습니다. CSS를 잘 처리 할 때 권장하지는 않습니다. – Peter