JFrame Mazimizado no linux

3 respostas
lsf
Ola;

Criei minha janela pricipal e quero que ela inicie maximizada, procurando no forum achei a dica de usar:

setExtendedState(JFrame.MAXIMIZED_BOTH)

Porem nao fucionou, no linux, no windows foi tudo bem.

Mas como estou desenvolvendo para o linux gostaria de ajuda. Alguem ja passou por isso ou tem alguma sugestao?

Outro ponto seria de nao permitir que uma janela aberta fosse chamada novamente. Tem com acessar a lista de objetos carregados e usar instanceof?
algo como:

if (lista.janela instanceof ClasseJanela)
    janela.setSelected(true); //recebe o foco
else
    abrirJanela();

Deu pra entender?

Grato

3 Respostas

kuchma

Sobre maximizar o JFrame: talvez nao seja exatamente o que voce precisa, mas voce pode determinar o tamanho do JFrame de acordo com o tamanho da tela:

frame.setSize(Toolkit.getDefaultToolkit().getScreenSize());

Sobre manter o controle das janelas abertas: voce deve controlar as instancias manualmente. Ou seja, sempre solicitar a abertura por um metodo especifico, que checa num List ou Map se aquela janela ja foi aberta. Se nao foi, abre e joga no List/Map. Se foi, poe o foco nela.

Da uma olhada no metodo estatico JFrame.getFrames(), que retorna um array de Frame. Talvez auxilie no processo de armazenar os frames abertos, nao precisando de um List/Map especifico. :slight_smile:

Marcio Kuchma

lsf

Sua primeira dica realmente deixa o JFrame do tamanho total da tela, e assim cobre a barra do Xfce.
optei por setsize(800,600);
e o caboclo que clice no botao pra maximizar

Quanto a segunda vou criar um Map pra controlar as janelas abertas

Obrigado pelas dicas, elas ajudarao

Falou

lsf
import javax.swing.JFrame;

public class Mdi extends JFrame{
    
    public Mdi(){
        
        super("Titulo");
        
        pack();
        
        //Deve vir antes do pack();
        setExtendedState(MAXIMIZED_BOTH);
        
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
    public static void main(String args[]){
        
        Mdi app = new Mdi();
        app.setVisible(true);
   
    }
}
Criado 29 de agosto de 2006
Ultima resposta 19 de fev. de 2008
Respostas 3
Participantes 2