我写了个带有按钮的japplet,在网页中打开他时,通过单击按钮,想让他执行我机器上的另外一个java程序,不知道可不可以?我写了一个,出现了问题,如果japplet代码中开头有package的话,那么在网页中就不能显示该applet,如果把package去掉的话,在网页中就可以显示了,但是就不能调用其它的java程序了!因为他跟那些java程序就不在同一个包里了,请问这个问题可以解决么?
下面是我的代码 :
import java.applet.Applet;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.*;public class Test2 extends JApplet implements ActionListener{
JButton button = new JButton("调用程序");
public void init() {
JPanel pane = new JPanel();
button.addActionListener(this);
pane.add(button);
setContentPane(pane);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==button)
{
login.Frame frame = new login.Frame();
frame.setVisible(true);
}
}
}
通过这个怎么调用其他包中的java程序呢?谢谢啦!
下面是我的代码 :
import java.applet.Applet;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.*;public class Test2 extends JApplet implements ActionListener{
JButton button = new JButton("调用程序");
public void init() {
JPanel pane = new JPanel();
button.addActionListener(this);
pane.add(button);
setContentPane(pane);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==button)
{
login.Frame frame = new login.Frame();
frame.setVisible(true);
}
}
}
通过这个怎么调用其他包中的java程序呢?谢谢啦!
楼主【kaoyansmiler】截止到2008-07-27 11:05:30的历史汇总数据(不包括此帖):
发帖的总数量:7 发帖的总分数:220 每贴平均分数:31
回帖的总数量:5 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:5 结贴的总分数:180
无满意结贴数:1 无满意结贴分:20
未结的帖子数:2 未结的总分数:40
结贴的百分比:71.43 % 结分的百分比:81.82 %
无满意结贴率:20.00 % 无满意结分率:11.11 %
楼主加油
比如TestApplet.class 在包package2中,指定class文件时,使用package2/TestApplet.class
其他的class文件,你这里是其他包中的,可以打包成.jar文件。然后在<applet.. >里面指定以下archive属性。
<jsp:params>
<jsp:param name="xml" value="${xml}" />
</jsp:params>
</jsp:plugin>这是我写过的一个程序。所有的class文件都直接打包在AppletTest.jar中了,code指定的时候按上面的限定指出class文件的位置。
<jsp:param name="xml" value="${xml}" />
</jsp:params>
把你所有的class 文件打包,生成一个.jar文件。在<applet 中指定这个.jar文件。网页执行的时候会自动的把这个jar文件下载过去,就能招到了。
得在html文件中applet标签中把要把类路径写全,
比如说Test2 类上面写了一句:package test;
此时html中的applet标签应该这样写:
<applet code="test/Test2.class" >
</applet>如果是采用文本编辑器的话,要手动建立test目录,
还得讲编译Test2.java所生成的Test2.class文件放到
test目录下,这样浏览器才可以成功的加载Test2.class如果你想在Test2类中调用其他类,而这些类又只有几个,可以考虑把它们也
放到Test2.java文件里,这样就可以调用它们了。但是在编译Test2.java文件后,
要把所有.class文件放到test目录下。如果Test2.java要用到很多的外部的类,试一下采用3楼的办法。我是用文本编辑器的。
3楼的,谢谢你这么努力的回复,呵呵,可我真的是弄不出来啊,archive我都看不懂呢。。
applet这么写
<applet code="test/HelloWorld.class" archive="test.jar" align="middle" width="640" height="160">
...
</applet>
自己百度一下这个问题很容易解决。
Java Plug-in 1.5.0_08
使用 JRE 版本 1.5.0_08 Java HotSpot(TM) Client VM
用户主目录 = C:\Documents and Settings\shdz
----------------------------------------------------
c: 清除控制台窗口
f: 终结在结束队列上的对象
g: 垃圾收集
h: 显示此帮助消息
l: 转储类载入程序列表
m: 打印内存使用
o: 触发日志记录
p: 重新载入代理配置
q: 隐藏控制台
r: 重新载入策略配置
s: 转储系统和部署属性
t: 转储线程列表
v: 转储线程堆栈
x: 清除类载入程序高速缓存
0-5: 设置跟踪级别为<n>
----------------------------------------------------载入:找不到类 login/Test.class。
java.lang.ClassNotFoundException: login.Test.class
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: E:\workspace\fapiao\bin\login\login\Test\class.class (系统找不到指定的路径。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(Unknown Source)
at sun.applet.AppletClassLoader.getBytes(Unknown Source)
at sun.applet.AppletClassLoader.access$100(Unknown Source)
at sun.applet.AppletClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 10 more
Exception in thread "AWT-EventQueue-3" java.lang.ExceptionInInitializerError
at login.Frame.<init>(Frame.java:37)
at login.Test.actionPerformed(Test.java:41)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.security.AccessControlException: access denied (java.io.FilePermission pic/qiche.png read)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkRead(Unknown Source)
at sun.awt.SunToolkit.createImage(Unknown Source)
at login.Icon.<clinit>(Icon.java:11)
... 25 more