2016-04-14 120 views
1

我使用JxBrowser加載某些內容。Ho將JxBrowser背景設置爲透明

我做的:

//create frame 
JFrame frame = new JFrame("Some title"); 

//create browser 
Browser browser = new Browser(); 
BrowserView view = new BrowserView(browser); 

//remove default window controls 
frame.setUndecorated(true); 

//add browser view to frame 
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
frame.add(view, BorderLayout.CENTER); 
frame.setSize(500, 400); 
frame.setLocationRelativeTo(null); 
frame.setVisible(true); 

//load url 
browser.loadURL("http://example.com"); 

,當我跑,我的瀏覽器的看法是白色的。我試圖將背景幀設置爲透明:

frame.setBackground(new Color(0, 0, 0, 0.0f)); 

但它隱藏了整個窗口。

任何想法?如何設置瀏覽器視圖的透明背景?

+0

我們不能添加JX-瀏覽器面板和嘗試? – Madhujith

回答

1

剛剛發現這個例子,你這是怎麼設置一個透明背景:

BrowserPreferences preferences = browser.getPreferences(); 
preferences.setTransparentBackground(true); 
browser.setPreferences(preferences); 

在JxBrowser 6.10和較高的,有功能,允許啓用支持網頁上的透明背景的。下面的例子演示瞭如何啓用支持透明背景的:

import com.teamdev.jxbrowser.chromium.Browser; 
import com.teamdev.jxbrowser.chromium.BrowserPreferences; 
import com.teamdev.jxbrowser.chromium.BrowserType; 
import com.teamdev.jxbrowser.chromium.swing.BrowserView; 

import javax.swing.*; 
import java.awt.*; 

/** 
* This sample demonstrates how to create Browser instance with transparent background. 
*/ 
public class TransparentPageSample { 
    public static void main(String[] args) { 
     Browser browser = new Browser(BrowserType.LIGHTWEIGHT); 

     // Enable support of transparent background 
     BrowserPreferences preferences = browser.getPreferences(); 
     preferences.setTransparentBackground(true); 
     browser.setPreferences(preferences); 

     BrowserView view = new BrowserView(browser); 

     JPanel panel = new JPanel(); 
     panel.setLayout(new BorderLayout()); 
     panel.setBackground(new Color(0, 150, 255, 255)); 
     panel.add(view, BorderLayout.CENTER); 

     JFrame frame = new JFrame(); 
     frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
     frame.add(panel, BorderLayout.CENTER); 
     frame.setSize(300, 200); 
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 

     browser.loadHTML("<html><body>" 
       + "<div style='background: yellow; opacity: 0.7;'>\n" 
       + " This text is in the yellow half-transparent div and should " 
       + " appear as in the green due to the blue JPanel behind." 
       + "</div>\n" 
       + "<div style='background: red;'>\n" 
       + " This text is in the red opaque div and should appear as is." 
       + "</div>\n" 
       + "<div>\n" 
       + " This text is in the non-styled div and should appear as in " 
       + " the blue due to the blue JPanel behind." 
       + "</div>\n" 
       + "</body></html>"); 
    } 
} 

https://jxbrowser.support.teamdev.com/support/solutions/articles/9000104967-transparent-background