Pergunta

Eu estou projetando um experimento de psicologia com applets Java. Eu tenho que fazer o meu java applets tela cheia. Qual é a melhor maneira de fazer isso e como eu posso fazer isso.

Uma vez que não foram usando applets Java para 3 anos (a última vez que eu usei foi para uma lição de casa é claro :)) eu tenha esquecido a maioria dos conceitos. Eu pesquisei e descobri que link: Dani web

Mas no método descrito no link acima você tem que colocar um JFrame dentro do applet que eu não tenho nenhuma idéia de como fazê-lo.

O que quer que eu preciso de um método rápido e sujo b'cause Eu não tenho muito tempo e esta é a razão pela qual eu pedi-lo aqui.

Thanx de antecedência

Foi útil?

Solução

Eu acho que você quer usar WebStart. Você pode implantar a partir de um navegador, mas é o contrário de um aplicativo desenvolvido. Existem algumas restrições de segurança browserish, mas, como você está usando um Applet atualmente, acho que podemos assumir que eles não são um problema.

Outras dicas

A resposta óbvia é não usar applets. Escrever uma aplicação que utiliza um Jframe ou JWindow como o seu recipiente de nível superior. Não é uma enorme quantidade de trabalho para converter um applet em um aplicativo. Applets são projetados para ser incorporado em outra coisa, normalmente uma página web.

Se você já tem um applet e quero fazê-lo em tela cheia, há dois hacks rápida e suja:

1). Se você sabe que a resolução da tela, basta configurar os parâmetros do applet ser que tamanho no HTML e, em seguida, executar o navegador em modo de tela cheia.

2). Execute o applet no appletviewer, ao invés de uma página web, e maximizar a janela do appletviewer.

Por que não basta abrir um novo quadro da aplicação (a partir do "start ()" método ou, de preferência, após o usuário pressionar um botão "aberto") e configurá-lo para ser maximizada?

JFrame frame = new JFrame();
//more initialization code here
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
frame.setSize(dim.width, dim.height);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

Não esqueça: O JFrame deve ser criado e aberto do EDT. Applet start () não é garantido para ser chamado nesse segmento, por isso uso SwingUtilities.invokeLater (). Claro, se você optar pela rota botão, ouvinte botão é chamado no EDT, assim que você deve ser seguro.

Eu encontrei uma solução para este problema que funciona bem. Testado em Linux 64 bits (Chrome e Firefox) e no Windows 7 64 bits (Chrome e Explorer)

O único problema foi que meu applet usa todo o espaço no navegador e quando o interruptor de utilizador desligar o modo de tela cheia, o applet não é dimensionado para o tamanho do navegador. A solução tem sido a de manter o tamanho anterior do applet antes de entrar em um modo de tela cheia e, em seguida, definir este tamanho quando os retornos applet para o modo normal:

public void setFullScreen() {   
        if (!this.fullscreen) {
            size = this.getSize();
            if (this.parent == null) {
                this.parent = getParent();
            }
            this.frame = new Frame();
            this.frame.setUndecorated(true);
            this.frame.add(this);
            this.frame.setVisible(true);

            GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
            GraphicsDevice[] devices = ge.getScreenDevices();
            devices[0].setFullScreenWindow(this.frame);
            this.fullscreen = true;
        } else {
            if (this.parent != null) {
                this.parent.add(this);
            }
            if (this.frame != null) {
                this.frame.dispose();
            }
            this.fullscreen = false;
            this.setSize(size);
            this.revalidate();
        }       
        this.requestFocus();
    }
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top