DJ Native Swing JWebBrowser面板在JTabbedPane内部无法正常工作

时间:2012-04-22 16:56:12

标签: java swing netbeans-7 jtabbedpane

我使用DJ-Native-Swing - JWebBrowserJTabbedPane标签中显示浏览器窗口,其中还包含其他标签。
我正在尝试的代码(在NetBeans 7.1.1上)是:

browserPanel = (JPanel) SimpleWebBrowserExample .createContent();   // I use this line in browserPanel Properties > Customize Code

main(String[] arg)方法中:

NativeInterface.open();
    /*
     * Create and display the form
     */
    java.awt.EventQueue.invokeLater(new Runnable() {

        @Override
        public void run() {
            new MyFrame().setVisible(true);
        }
    });
NativeInterface.runEventPump();

但代码无效,JWebBrowser未显示在面板上。我还有什么需要做的呢? 我是Windows 7 x64,JDK1.7.0,我已经包含了DJ Native Swing所需的所有库。

独立程序也适用于我。

1 个答案:

答案 0 :(得分:0)

我意识到这个答案有点迟到但这就是我做的事情

这是扩展JPanel并定义浏览器的类:

   public class BrowserPanel extends JPanel {   

public  BrowserPanel() {
    super(new BorderLayout());
    JPanel webBrowserPanel = new JPanel(new BorderLayout());
    webBrowserPanel.setBorder(BorderFactory.createTitledBorder(""));
    final JWebBrowser webBrowser = new JWebBrowser();
    webBrowser.navigate("bigfarm.goodgamestudios.com/?country=RO");
    webBrowserPanel.add(webBrowser, BorderLayout.CENTER);
    add(webBrowserPanel, BorderLayout.CENTER);
  }

}

然后我创建了一个扩展JFrame的类并保存了JTabbedPane

public class WhateverFrame extends JFrame{



    private JTabbedPane tabbedPane;



    public WhateverFrame() {


        BrowserPanel x=new BrowserPanel();

        tabbedPane = new JTabbedPane(JTabbedPane.TOP);


        tabbedPane.add(x, BorderLayout.WEST);
        tabbedPane.setTitleAt(0, "Start");
        /*
         * add the tabbedPane to the content pane
         */

        setContentPane(tabbedPane);
    }

主要看起来像这样:

public static void main(String[]args){ 

        UIUtils.setPreferredLookAndFeel();
        NativeInterface.open(); 
        SwingUtilities.invokeLater(new Runnable() {


        public void run() {
        WhateverFrame frame=new WhateverFrame();
                frame.setExtendedState(Frame.MAXIMIZED_BOTH);
                frame.setLocation(0,0);
                frame.setVisible(true);


          }    
        });
    }