JApplet中的JFrame

时间:2011-07-15 07:38:35

标签: java jframe japplet

我有基于JFrame的程序。现在我想在网页上运行它。看来我必须使用JApplet。我该怎么办 ?我可以拥有JApplet窗口和许多JFrame窗口,它可以在网络上运行吗?

package Interface;
import java.awt.FlowLayout;    
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;    
import Interface.Menu.block;    

public class Menu extends JApplet {
    static int rows=8;
    static int cols=8;
    MenuLabel menulabel ;
     public enum block
        {Ground,Wall,Ice,Trap,Box;
        }
     public static Start start; 

    @Override

    public void init() {
//      super("Menu");    
//      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
        this.setLayout(null);
        this.setBounds(300, 100, 600,600);
        menulabel= new MenuLabel(8,8);
        add(menulabel);
        Main.menu=this;
        JMenuBar load=new JMenuBar();
        load.add(new Loadbutton());
        new JFrame().setVisible(true);
        add(load);

        Startbutton Start = new Startbutton(this);
        Loadbutton Load =new Loadbutton();
        Editbutton Edit = new Editbutton();
        add(Start);
        add(Load);
        add(Edit);

        paint(this.getGraphics());
    }    
};
 class MenuLabel extends JLabel implements Cloneable
{  
     int rows,cols;
    public  MenuMap [][] menumap;
    MenuLabel(int rows,int cols)
    {
        Menu.rows=rows;
        Menu.cols=cols;
        this.rows=rows;
        this.cols=cols;
        setBounds(140,100,580,580);
        menumap=new MenuMap[rows][cols];
        add(new JButton("sds"));
        for(int i=0;i<rows;i++)
            for(int j=0;j<cols;j++)
            {
                menumap[i][j]=new MenuMap(j*50,i*50,block.Ground);
                menumap[i][j].setBounds(j*50, i*50, 50, 50);
                add(menumap[i][j]);
            }
    }
    void changeCell(int x ,int y,Menu.block b)
    {
        removeAll();            
        menumap[x][y]=new MenuMap(menumap[x][y].getX(), menumap[x][y].getY(),b);
        for(int i=0;i<Menu.rows;i++)
            for(int j=0;j<Menu.cols;j++)
                add(menumap[i][j]);
    }
    public MenuLabel(MenuLabel another)
    {
        this.cols=another.cols;
        this.rows=another.rows;
        setBounds(140,100,580,580);
        menumap=new MenuMap[rows][cols];
        add(new JButton("sds"));
        for(int i=0;i<rows;i++)
            for(int j=0;j<cols;j++)
            {
                menumap[i][j]=new MenuMap(j*50,i*50,
                Menu.block.valueOf(another.menumap[i][j].getText()));
                menumap[i][j].setBounds(j*50, i*50, 50, 50);
                add(menumap[i][j]);
            }
    }
    MenuMap getCell(int i, int j)
    {
        return menumap[i][j];
    }
    public int getRows(){return this.rows;}
    public int getCols(){return this.cols;}    
}

2 个答案:

答案 0 :(得分:2)

  

我有基于JFrame的程序。

使用Java Web Start从链接启动它。

答案 1 :(得分:0)

如果没有深入研究您的代码,答案是肯定的,您可以。 您可以创建JFrame,设置其大小(和位置),然后使其可见。您的框架将与浏览器窗口分开显示。唯一的问题是为什么?想想用户:当Web应用程序创建多个弹出窗口时非常不方便。