2014-11-17 5 views
2

여러 번 물어 본 적이 있지만 명확한 대답은 없습니다. 또한 모든 대답은 JavaFX 이전 버전이었으며 지금까지 해결 방법이 있어야합니다. 나는 배경색이 투명해야한다.WebView JavaFX의 배경색 변경

+0

답변은 답변이어야합니다. 솔루션 자체를 편집했습니다. – k0pernikus

답변

2

하바이 JIRA 문제를 살펴보십시오. https://bugs.openjdk.java.net/browse/JDK-8116513 마지막으로 댓글을 올리면 도움이 될만한 해킹에 대한 설명이 나오며, 이것을 최종적으로 수정하려면 https://bugs.openjdk.java.net/browse/JDK-8090547 에 투표하는 것을 잊지 마세요.

+0

관련 링크를 게시 할 수 있습니까? –

+0

감사합니다. 나는 투표했고, 나는 지금 그 코드를 시도 할 것이다. – user2130057

+0

@mipa 링크 된 웹 페이지에서 문제가 해결되었다고 말하면 왜 솔루션을 해킹해야하는지 이해할 수 없습니다. 1.8에 공식 해결책이 있다고합니다. 공식 해결책은 어디에 있습니까? – user2130057

0

이 솔루션은 Harry Hurr 덕분입니다.

작동하려면 두 개의 작은 것으로 바꾸어야했습니다. 너의 것이 여전히 작동하지 않는다면, 아마도 당신은 잘못된 것을 가져올 것이다.

//put this line before you loadContent 
webEngine.documentProperty().addListener(new WebDocumentListener(webEngine)); 

class WebDocumentListener implements ChangeListener<Document> { 
    private final WebEngine webEngine; 

    public WebDocumentListener(WebEngine webEngine) { 
     this.webEngine = webEngine; 
    } 

    @Override 
    public void changed(ObservableValue<? extends Document> arg0, 
      Document arg1, Document arg2) { 
     try { 
      // Use reflection to retrieve the WebEngine's private 'page' field. 
      Field f = webEngine.getClass().getDeclaredField("page"); 
      f.setAccessible(true); 
      WebPage page = (WebPage) f.get(webEngine); 
      // Set the background color of the page to be transparent. 
      page.setBackgroundColor((new java.awt.Color(0, 0, 0, 0)).getRGB()); 
     } catch (Exception e) { 
      System.out.println("Error: " + e); 
     } 
    } 
}