可以转化,但是有限制:使用重量级控件、使用socket、文件操作等等,在浏览器中可能会失效。

解决方案 »

  1.   

    嗯,可以编写一个既是applet又是application的java程序。。
    主要的做法是:
    将其public类派生自applet,并且在这个类中必须具有一个静态main()方法。。
    然后自己创建一个派生自frame类的applet2frame类,其作用是将一个applet对象放到一个frame对象容器中。。
    再在main()方法中实现applet2frame类的实例就可以了。。具体的代码如果楼主需要参考的话偶回头再码上来。。
      

  2.   

    谢谢大家给了我这么多的建议,昨天在其它的网站上也有人给了我一段代码,我试了一下好象不行,代码如下:
    ------------------------
    public class myapplet extends Applet 

         ........ 
         public static void main(String[] args) 
         { 
              JFrame mfrm = new JFrame(); 
              myapplet app = new myaplet(); 
              app.start(); 
              mfrm.getContentPane().add(app); 
              mfrm.show(); 
         } 

     这样就可以又是applet又是application了.
    -------------------------
    请大家在帮我看看,如果你们有参考代码的话,请给我一份,谢谢!
      

  3.   

    楼上的,你的main()中还没有applet的init()方法呢,怎么可能显示。。
    最好先新建一个派生自frame类的applet2frame类,然后把那些初始化applet和将applet对象置入frame的方法放在该类里来实现。。
    main()方法中只需要简单的引用该类就可以了,这样的代码重用性比较好。。
    楼主可以去看看机械工业出版社的《java2核心技术:卷一》,其中有一节讲得比较详细。。
    我实在懒的写代码。。
    :)另外,我觉得是不是可以通过另一种方法实现:
    将所有的界面先保存在一个panel中,然后在applet和application中分别引用这个panel,这样我想也许会简单一点。。
    不过我也没试过,不知道会有什么纰漏。。
      

  4.   

    我这里有一段代码,你可以参考一下,我测试成功import javax.swing.*;
    import java.awt.*;
    import java.util.*;
    public class TJTable2 extends JApplet 
    {
      String[] columnNames = {"NAME","SIZE(BYTES)","DATE","DIRECTORY"};
      Object[][] rowData = {
          {"AUTOEXEC.BAT","149","09-11-98",new Boolean(false)},
          {"REAL","DIR","09-10-98",new Boolean(true)},
          {"WINDOWS","DIR","09-02-98",new Boolean(true)},
          {"COMMAND.COM","92879","03-11-98",new Boolean(false)},
          };
       
          
       public void init()
      {   JTable table = new JTable(rowData,columnNames);   getContentPane().add(table.getTableHeader(),BorderLayout.NORTH);
       getContentPane().add(table);
       table.setValueAt("修改",1,1);
       
      }
     
         
      public static void main(String[] args)
      {
        TJTable2 applet = new TJTable2();
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(applet, BorderLayout.CENTER);
        frame.setTitle("Applet Frame");
        applet.init();
        applet.start();
        frame.setSize(300, 300);
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension frameSize = frame.getSize();
        frame.setLocation((d.width - frameSize.width) / 2, (d.height - frameSize.height) / 2);
        frame.setVisible(true);
      }  private void jbInit() throws Exception
      {
        this.getContentPane().setLayout(null);
      }  static  
      {
        try
        {
          // UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
          // UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
        }
        catch(Exception e)
        {
        }  }
    }
      

  5.   

    可以的,用jbuilder就可以自动生成一个,呵呵,简单吧?
      

  6.   

    "用jbuilder就可以"是真的吗?如果是真的话那太好了,因为我已经完成的这个Application就是用jb6做的,你能告诉我具体是如何“自动生成”吗,因为去改写已经生成的代码是一件很令人头痛的事,在线等待,谢谢!
      

  7.   

    按如下方法:
    1)建立一个applet. FILE ->NEW->APPLET
    2)按它的步骤,你会看到有这么几个选项
     a) Generate header Comments
     b) Can run standalone   
     c) Generate standard mothed
    其中默认选中的是a。 b和c是没有选中的,你只要把b选中就可以生成既可以当applet运行,又可以当application运行了。