[Resolvido] Problema Minimizar e Restaurar JFrame

17 respostas
T

Fala galera,

Alguem já teve problema ao minimizar o JFrame e quando restaura
ele fica todo bugado!!! Não aparece componentes e tal…

Ja foi feito o repaint, mas não resolveu…
Obs.: Não ocorre nenhum erro, a tela existe só fica bugada

Att. Jonas Teixeira de Freitas

17 Respostas

M

O seu programa faz pintura customizada de componentes (você sobreescreveu o método paintComponent ou paint)?

Poste uma imagem de como fica a aplicação para vermos.

L

Oi,

Pode ser problema com a memoria virtual do S.O…

Tchauzin!

T

Não acontece em todos os computadores, apenas em 2… fizemos testes em 5

V

Todos os computadores usam o mesmo SO?
Você está usando nullayout na tela?
Não dá nenhuma exception (vc, aliás, captura todas as exceptions e as loga)?

V

Eu já tive problemas desse tipo e sempre gerava exception… Geralmente com JTable… model inconsistente… chama valueAt(x,y) e o valor não estava dentro do Array de dados… dai travava a interface assim… Vc passa o mouse e alguns componentes aparecem…

Veja o stacktrace…

T

Ps.: nao gera erro… nao tem stacktrace… hehehe

Seria bem mais fácil rsrsrs

T

ViniGodoy:
Todos os computadores usam o mesmo SO?
Você está usando nullayout na tela?
Não dá nenhuma exception (vc, aliás, captura todas as exceptions e as loga)?

Alguns usam winXP e outros win7

V

Você tem certeza que não tem nenhum:

try { //qualquer código aqui } catch (Exception e) { //nenhum código aqui }

No seu código?

V

Cara… axo mto dificil não ter erro hein… aposto no que o vinigodoy falou…

T

PS.: A tela funciona no meu computador e em mais 2 computadores do desenvolvimento.

Agente tem apenas um

this.setExtendedState(JFrame.ICONIFIED);

para minimizar, e restaurar o proprio windows deve fazer sozinho…

L

Oi,

Ainda acho que é problema de memória…
Quem sabe utilizando os comandos: -Xms e -Xmx (Ex: -Xms256m -Xmx512m)

Tchauzin!

L

Oi,

Qual foi a solução?

Tchauzin!

T

Na verdade, nao deu certo ainda…

Achei que tinha resolvido… Ainda estamos tentando descobrir o erro :slight_smile:

F

Oi!

A dica da lina é interessante, vale a pena dar uma olhada.

Você já fêz isto?

Verifique se não há nenhum statment try / catch sem código como o Vini falou.

Fora isso verifique se não é problema com threads, caso você esteja utilizando.

As threads que processam a tela podem estar suspensas esperando a resolução de outras threads em andamento.

flws

M

Ou ocupadas demais (dentro de um loop) para repintar a interface.

T

Parece que resolveu com a ajuda da Lina…

Qualquer coisa volto a anunciar :wink:

A

JFrame herda o método setstate de java.awt.Frame. Este método permite que você altere o estado de uma janela de "iconified", de volta ao "normal". Este é, na realidade, minimizar e restaurar - mas a documentação usa termos diferentes. Para minimizar ou restaurar uma janela, nós simplesmente chamar o método setstate, e passá-lo um parâmetro de estado para indicar se queremos minimizar ou restaurar a janela ..

Por exemplo, para minimizar um quadro (ou subclasse, como JFrame), passamos o parâmetro 'iconified'
myFrame.setState (Frame.ICONIFIED);
Para restaurar o quadro ao seu estado normal, chamamos o método setstate com o parâmetro 'normal'
myFrame.setState (Frame.NORMAL);
Para demonstrar este efeito, eu escrevi uma pequena demonstração, que você pode compilar e executar. No exemplo a seguir, um novo quadro é criado, e, em seguida, minimizado. Após um pequeno atraso, é restaurado novamente.
import java.awt.*;

public class FrameTest
{
        public static void main (String args[]) throws Exception
        {
                // Create a test frame
                Frame frame = new Frame("Hello");
                frame.add ( new Label("Minimize demo") );
                frame.pack();

                // Show the frame
                frame.setVisible (true);

                // Sleep for 5 seconds, then minimize
                Thread.sleep (5000);
                frame.setState ( Frame.ICONIFIED );

                // Sleep for 5 seconds, then restore
                Thread.sleep (5000);
                frame.setState ( Frame.NORMAL );

                // Sleep for 5 seconds, then kill window
                Thread.sleep (5000);
                frame.setVisible (false);
                frame.dispose();

                // Terminate test
                System.exit(0);
        }
}
[img]http://1.bp.blogspot.com/-BShYeSAYz3s/U8IM7XFVYKI/AAAAAAAAFmk/3df54BgqyQA/s1600/Captura+de+tela+2014-07-13+01.36.03.png[/img]
Criado 29 de dezembro de 2009
Ultima resposta 13 de jul. de 2014
Respostas 17
Participantes 7