Iniciar um JFrame Maximizado?

Como eu inicio um JFrame maximizado, procurei propiedades no JFrame tipo setMaximized ou algo semelhante mais não encontrei nada.

Se alguem puder ajudar.

:lol:

1 curtida

Acho que isso resolve seu problema:

Container c = getContentPane(); Dimension tela = Toolkit.getDefaultToolkit().getScreenSize(); setSize(tela.width, tela.height);

tai, acho que é isso!!!
Falow!!

O código acima não maximizará a tela, mas sim setará o tamanho para o tamanho da área de trabalho, o que é diferente. Quando a tela está maximizada, você não pode move-la e o botão de maximizar está desabilitado.

O recurso de maximização só está disponível a partir do J2SE 1.4 (se não me engano, sei que o 1.31 não tem).

basta usar

.
.
.
meuFrame.setExtendedState(JFrame.MAXIMIZED_BOTH);
meuFrame.show();
.
.
.

Porque o meu JFrame naum inicia maximinizado??? dá uma olhada…

void telaMenu (){ FMenu.setTitle("Menu"); FMenu.setSize(799,600); FMenu.setJMenuBar(Menu); FMenu.setExtendedState(JFrame.MAXIMIZED_BOTH); . . FMenu.show(); }

To fazendo algo errado???

o meu tb não está MAXIMIZANDO eu coloco o código e ele nem liga :shock: !!!, pq ? será um BUG da API ? :frowning:

Se puderem Ajudar !!!

Vaew t+

Lembrem-se de que esta funcionalidade só está disponível a partir do J2SE 1.4. Na API javadoc, ele alerta que alguns sistemas operacionais não suportam certos estados. No Windows2000, comigo, funcionou tranquilamente. Se estiverem usando JBuilder, lembrem que até a versão 7 ele ainda usa o J2SE 1.3. Verifiquem se após o código de vocês é executado o método pack(). Acredito que ele “desformata” o maximized. Alguém no meu trabalho teve o mesmo problema usando JBuilder (eu uso NetBeans) mas conseguimos resolver. Mais tarde retorno e vejo o que pode ter ocorrido.

Eu estou usando J2SE 1.4 no ambiente Windows ME não estou usando pack, e meu ambiente e o eclipse ? e engraçado pois ele simplismente ignora o comando !!! :?:

Falow …
:shock:

Testei a aplicação tanto no JBuilder quanto no NetBeans. No Netbeans rodou tudo ok, mas no JBuilder7 não (sinceramente, não gosto do JBuilder). Já passei por esse problema. A tarde, se ninguém mais responder, digo como fazer. Como já disse, tem um amigo meu que conseguiu botar pra rodar no JBuilder.

Vou colocar o código que o netbean gera (Ah! Não tem problema em usar o pack() não)

public class teste2 extends javax.swing.JFrame {
  public teste2() {
    initComponents();
    setExtendedState(MAXIMIZED_BOTH);
  }
  
  private void initComponents() {
    
    addWindowListener(new java.awt.event.WindowAdapter() {
      public void windowClosing(java.awt.event.WindowEvent evt) {
        exitForm(evt);
      }
    });
    
    pack();
  }
  
  private void exitForm(java.awt.event.WindowEvent evt) {
    System.exit(0);
  }
  
  public static void main(String args[]) {
    new teste2().show();
  }
}

Opa! No código anterior, o setExtendedState() foi posto por mim à mão. Se eu pedir para o NetBeans gerar o código para mim não funciona, pois o setExtendedState aparece dentro do initComponents() e antes do pack().

public class teste2 extends javax.swing.JFrame {
  public teste2() {
    initComponents();
  }
  
  private void initComponents() {

    setExtendedState(MAXIMIZED_BOTH);
    addWindowListener(new java.awt.event.WindowAdapter() {
      public void windowClosing(java.awt.event.WindowEvent evt) {
        exitForm(evt);
      }
    });

    pack();
  }
  
  private void exitForm(java.awt.event.WindowEvent evt) {
    System.exit(0);
  }
  
  public static void main(String args[]) {
    new teste2().show();
  }
}

Mesmo que eu tire a chamada à pack() o código não funciona. Mas se logo após initComponents() eu invocar setExtendedState(), aparecendo então duas vezes no código, uma dentro de initComponents() e uma após, funciona normalmente.

??? :shock:

Tentem chamar pack() e logo em seguida setExtendedState(). Apenas nessa situação consegui colocar para funcionar.

Iruuuuuu. è isso mesmo. Testando o código que o netbeans gera, uma chamada setExtendedState() antes do pack() (ou sem a presença do pack()) não funciona. se você chamar setExtendedState() após pack() rola blz.

O mesmo vale para o JBuilder.

Bom so pra extender a explicação do Elvis eu resolvi o problema do seguinte modo, pois se eu chamar pack e depoi mandar maximizar fica blz … Mais se por exemplo eu setar um setSize e depois chamar pock() maximiza mais quando o usuario clica No botão Normal a Janela fica pequeninnha mais fazendo desse jeito fica blz …


		//Organiza os Componentes no Formulario
		frmSistema.pack();

		//Definindo o Tamanho do Padrão do Formulario de Acordo com Tamanho da Tela
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		frmSistema.setSize((screenSize.width - 50), (screenSize.height - 100));

		//Centralizando o Formulario Na Tela		
		Util.getInstance().Centraliza(frmSistema);

		frmSistema.setExtendedState(JFrame.MAXIMIZED_BOTH);
		frmSistema.show();

Falow Valew …
t+

Olha que engraçado!
Mesmo se eu der um pack() antes de adicionar os objetos e lááá no final dat o setExtendedState() funciona!!
Se não der o pack() antes não funciona mesmo… porque será??
Bug na API?? heheheh

Detalhe:
Toolkit.getDefaultToolkit().isFrameStateSupported(JFrame.MAXIMIZED_BOTH)
diz se o SO suporta este formato ou não… :smiley:

Não acho que sej abug não. Segundo a documentação de pack() ele é responsável por iniciar uma série de eventos para a exibição do Frame. Deve ter alguma relação. Só não sei qual.

Eu tenho muito pouco tempo de estudo de java, não deveria dar nenhuma piada, porque ainda estou aprendendo, mas eu fiz esse código aí abaixo, com o mínimo para abrir apenas uma janela maximizada. Eu rodei e abre maximizada perfeitamente.

import javax.swing.*;

public class JanelaMaximizada extends JFrame 
{
      public JanelaMaximizada()
           {
              super("Janela Maximizada");
              setSize(300, 150);
              setVisible(true);
              setExtendedState(MAXIMIZED_BOTH); 
              
           }  
      public static void main(String args[])
         {
            JanelaMaximizada app = new JanelaMaximizada();
            app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
         }
 }
           

Aqui no meu computador roda e abre realmente maximizada, mas se eu tiro do código aquele setSize(300,150) não abre maximizada.
Bem, só desejo ajudar.
Luca

1 curtida

Na verdade, isso tudo não importa. O comando de maximizar é:

tela.setExtendedState(JFrame.MAXIMIZED_BOTH);

no meu caso, eu coloquei junto com o método construtor apenas

funfou direitinho…

falowww

cara não precisa estes códigos para embaraçar a cabecinha do rapaz…

seguinte, no netbeans, no escopo do método construtor, coloque a seguinte linha de comando:

(nome do JFrame ou “this”).setExtendedState((nome do JFrame ou “this”).MAXIMIZED_BOTH);

e shift + f6 e pronto, só alegria…

Em 2002, quando essa dúvida foi postada pela primeira vez, isso era um problema em alguns SOs. Em 2006, a situação já era melhor. Em 2008, quando o tópico voltou à vida pela terceira vez, muita coisa já havia mudado.

Agora, em 2009, quase 2010, acho pouco provável que alguém tenha problemas, exceto talvez em VMs muito específicas.

Então, porque ficar ressuscitanto esse tópico?

Pessoal segue código para o FrameView do NetBeans, esse código está no botão da minha tela de login e funciona perfeitamente

        JApoloView main = new JApoloView(JApoloApp.getApplication());

        //Desativar controles em caso de login por cliente
        if ( ClassConecta.tipoPessoa.equals("Cliente") ){
         main.setDesativarBotoes(); //Função no main para desativar botões
        }

        JFrame frame = main.getFrame();
        frame.setLocationRelativeTo(null);
        frame.pack();

        //Definindo o Tamanho do Padrão do Formulario de Acordo com Tamanho da Tela
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        frame.setMinimumSize(new Dimension((screenSize.width - 50), (screenSize.height - 100)));
        //Quando restaurar nãõ va para o canto direito e sim para o esquerdo.
        frame.setLocation(10, 10);



        JApoloApp.getApplication().show(main);
        //Para maximizar, é necessário colocar o código após o show ou setVisible(true)
        frame.setExtendedState(JFrame.MAXIMIZED_BOTH);

initComponents();
setExtendedState(MAXIMIZED_BOTH);
}

1 curtida

Cara , acho que ja teve respostas suficiente e nem precisava ressucitar este tópico…