2010-02-07 74 views
2

我有以下程序來測試GlassPane,但它不能與JDIC的WebBrowser一起使用。有誰知道我做錯了什麼,以及如何使它工作?爲什麼GlassPane不能與JDIC的WebBrowser一起使用?

import org.jdesktop.jdic.browser.*; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import java.net.*; 

public class Test_Panel extends JPanel 
{ 
    static WebBrowser webBrowser=new WebBrowser(); 
    static int W=802,H=702; 

    Test_Panel() 
    { 
    setPreferredSize(new Dimension(W,H)); 
    setLayout(new BorderLayout()); 
    webBrowser.setPreferredSize(new Dimension(W,H)); 
// add("Center",webBrowser); 

    try { webBrowser.setURL(new URL("http://www.yahoo.com")); } 
    catch (MalformedURLException e) { e.printStackTrace(); } 
    } 

    static void Create_And_Show_GUI() 
    { 
    JFrame frame=new JFrame("Test"); 
    frame.add(new Test_Panel()); 
    frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); 

    new My_GlassPane(frame,W,H); 

    frame.pack(); 
    frame.setBounds(0,0,W,H); 
    frame.setVisible(true); 
    } 

    public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { Create_And_Show_GUI(); } }); } 
} 

class My_GlassPane extends JComponent 
{ 
    JFrame f; 
    int W,H,Edge,Size; 

    public My_GlassPane(JFrame f,int W,int H) 
    { 
    this.f=f; 
    this.W=W; 
    this.H=H; 
    Edge=W/100; 
    Size=W/5; 
    f.setGlassPane(this); 
    f.getGlassPane().setVisible(true); 
    } 

    public void paint(Graphics g) 
    { 
    g.setColor(Color.blue); 
    g.fillOval(W/6,H*18/120,W*2/3,H*2/3); 
    g.setColor(Color.white); 
    g.setFont(new Font("Times New Roman",0,Size)); 
    g.drawString("Test",W/3,H*68/120); 
    } 
} 

如果取消註釋add("Center",webBrowser);你會看到什麼我mean--的玻璃面板不會出現。爲什麼不?

你需要有「jdic.jar」和「IeEmbed.exe」才能使它工作。我有的版本是0.9.1.0,你可以得到它們here

回答

相關問題