[RESOLVIDO]Iniciar JInternalFrame posicionado exatamente na posição definida

1 resposta
wilsontads

Pessoal, tenho a seguinte situação:
Criei um JFrame, e dentro dentro deste JFrame eu tenho um JDesktopPane chamado desktop.
Este JFframe, deve-se iniciar maximizado.

Partindo deste, eu criei um JInternalFrame e criei o seguinte método, p/ posicioná-lo sempre ao centro e topo do JDesktopPane.
public void setPosition() throws Exception {
        try {

            Dimension d = this.getDesktopPane().getSize();
            this.setLocation((d.width - this.getSize().width) / 2, 0);

        } catch (Exception e) {
            throw new Exception(e.getMessage());
        }
    }

No entanto, quando inicio meu JFrame, maximizo-o da seguinte forma:

public GUIPrincipal() {
        initComponents();
        this.setExtendedState(JFrame.MAXIMIZED_BOTH);
        chamaJInternal();
    }

    public void chamaJInternal(){
      guiPatio = new GUIPatio();
                desktop.add(guiPatio);
                guiPatio.setPositionCenter();}

Só que não sei por que cargas d'agua, o meu JInternalFrame, parece ser chamado antes de eu maximizar a tela.

1 Resposta

wilsontads
Resolvi da seguinte forma.. no meu JInternalFrame:
this.addComponentListener(new ComponentListener() {

            @Override
            public void componentResized(ComponentEvent e) {
                System.out.println("Redimencionado");
                guiPatio.setPositionCenter();
            }

            @Override
            public void componentMoved(ComponentEvent e) {
                System.out.println("Movido");
            }

            @Override
            public void componentShown(ComponentEvent e) {
                System.out.println("componentShown");
            }

            @Override
            public void componentHidden(ComponentEvent e) {
                System.out.println("Minimizado");
            }
        });
Criado 16 de março de 2012
Ultima resposta 16 de mar. de 2012
Respostas 1
Participantes 1