我已经使用Netbeans中的JUNG库创建了一个JApplet,它可以正常编译和运行。但是,当我尝试创建一个运行小程序的html文件时,只会出现一个灰色窗格,但组件却不见了。我的课是:
public class View extends JApplet {
//Here I declare the buttons etc..
public View()
{
initializeComponent();
fetchGraphs();
}
public static void main(String[] args) throws IOException{
f = new JFrame();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
x = screenSize.width;
y = screenSize.height;
f.getContentPane().add(new View());
f.setTitle("Social Network Privacy Settings and Access Control");
f.setLocation(new Point(15, 20));
f.setSize(new Dimension(x-20,y-50));
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.setResizable(false);
f.setVisible(true);
}
}
方法initializeComponent((将所有组件添加到主窗口中。我使用JFrameBuilder构建了一些基本组件。JFrameBuilder使用addComponent(容器、组件、x、y、宽度、高度(方法添加组件
我使用下面的代码:
contentPane = (JPanel)this.getContentPane();
//to create the japplet contentpane
addComponent(contentPane, genGraphButton, (int)(0.35*x),(int)(0.63*y),
(int)(0.2*x),28);
// to add components
然后我创建了一个html文件:
<applet code = 'MyPackage.View'
archive = 'MyProject.jar',
width = 1600,
height = 800/>
在/dist文件夹中,但当我尝试用Mozilla Firefox打开它时,只会出现一个灰色窗格。奇怪的是,我创建了另一个简单的小程序,这次是使用netbeans JBuilder,它在网页中正常运行。
我真的需要帮助!
提到JUNG库,它依赖于两个第三方库,Collections Generic&Cern-Colt科学图书馆1.2.0。正如@othman所提到的,它们需要添加到小程序的运行时类路径(添加到applet
元素的archive
属性(。
但为了让我们清楚,请确保HTML包含的不仅仅是applet元素。类似这样的东西:
<html>
<body>
<applet
code='MyPackage.View'
archive='MyProject.jar,jung.jar,collections.jar,colt-scientific.jar'
alt='Java is DISABLED in this browser!'
width='1600'
height='800'>
This browser does not recognize the applet element!
</applet>
</body>
</html>
当然,你需要把最后3个罐子的名字改成他们的真名。
我不是Applet专家,因为我不使用它们,但IIRC需要init()
方法来初始化视图。main(...)
不是为小程序调用的。
首先,我不确定您添加到html中的新行是否合法。我的意思是写<applet
和/>
,没有任何新行和空格。
其次,测试您的jar是否真的可用。要做到这一点,请访问与您在没有HTML但有jar的情况下检索HTML相同的URL,即
如果您的HTML URL是:http://somehost/my.html在浏览器中键入http://somehost/MyProject.jar看看你可以下载这个罐子。
如果有效,请检查code
属性。你的包名真的是MyPackage吗?大写?你知道这不符合命名惯例吗?
还要检查java控制台。在浏览器的菜单中找到它:它取决于浏览器。我相信您会以异常堆栈跟踪的形式看到原因。
您还需要在您的applet标签中引用JUG jar:
<
applet code = 'MyPackage.View'
archive = 'MyProject.jar , jung_xx.jar',
width = 1600,
height = 800 /
>
在archive属性中,添加当前netbeans项目类路径中的所有jungjar。