我写了个带有按钮的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程序呢?谢谢啦!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【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 %                  
    楼主加油
      

  2.   

    可以带package,只要按照正确的包层次放到html路径下就可以。指定class文件的时候要在前面加上包的路径限定,
    比如TestApplet.class 在包package2中,指定class文件时,使用package2/TestApplet.class
    其他的class文件,你这里是其他包中的,可以打包成.jar文件。然后在<applet.. >里面指定以下archive属性。
      

  3.   

    <jsp:plugin type="applet" archive="AppletTest.jar"  codebase="amp" code="cn/hello/test/WorkflowInstanceApplet.class" height="500" width="900">
         <jsp:params>
         <jsp:param name="xml" value="${xml}" /> 
         </jsp:params>
         </jsp:plugin>这是我写过的一个程序。所有的class文件都直接打包在AppletTest.jar中了,code指定的时候按上面的限定指出class文件的位置。
      

  4.   

        <jsp:params>
                    <jsp:param name="xml" value="${xml}" /> 
          </jsp:params>
      

  5.   

    假如我的html文件在\workspace中,他调用了applet的class文件,该applet文件放在\workspace\login中,名字是Myapplet.class,同时\workspace\login中还有很多别的class文件,比如denglu.class,通过在网页中进行Myapplet.class中的操作能否调用denglu.class呢?在appletviewer中是可以的,在网页中打开的时候怎么就不行了呢?
      

  6.   

    郁闷,在3楼和4楼说了这么多竟然没看。
    把你所有的class 文件打包,生成一个.jar文件。在<applet 中指定这个.jar文件。网页执行的时候会自动的把这个jar文件下载过去,就能招到了。
      

  7.   

    可以带package,
    得在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楼的办法。我是用文本编辑器的。
      

  8.   

    我这里没有用到jsp的东西,能不能不用jsp的语句呢,只有html和applet的,我不管怎么弄,点applet中的按钮,就是没反应,气死了!
    3楼的,谢谢你这么努力的回复,呵呵,可我真的是弄不出来啊,archive我都看不懂呢。。
      

  9.   

    跟jsp没什么关系,只是个习惯写法。
    applet这么写
    <applet  code="test/HelloWorld.class"  archive="test.jar"  align="middle"  width="640" height="160">
     ...
     </applet>
    自己百度一下这个问题很容易解决。
      

  10.   

    点applet按钮没有反映,在ie或者firefox中打开sun java控制台,里面会告诉你出了什么错误和异常,根据异常去找问题。差不多就能解决了。
      

  11.   

    能不能留下您的qq,我请教一下,呵呵,我点开那个以后,好多问题啊!
    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