JFrame внутри JApplet - PullRequest
       45

JFrame внутри JApplet

1 голос
/ 15 июля 2011

У меня есть программа, основанная на 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 ]

2 голосов
/ 15 июля 2011

У меня есть программа на основе JFrame.

Запустите ее по ссылке, используя Java Web Start .

0 голосов
/ 15 июля 2011

Не вдаваясь в свой код, ответ да, вы можете.Вы можете создать JFrame, установить его размер (и положение), а затем сделать его видимым.Ваша рамка появится отдельно от окна браузера.Единственный вопрос - почему?Подумайте о пользователе: это очень неудобно, когда веб-приложение создает количество всплывающих окон.

...