[Resolvido] Problema Minimizar e Restaurar JFrame

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

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.

Oi,

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

Tchauzin!

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

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)?

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…

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

Seria bem mais fácil rsrsrs

[quote=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)?[/quote]

Alguns usam winXP e outros win7

Você tem certeza que não tem nenhum:

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

No seu código?

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

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…

1 curtida

Oi,

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

Tchauzin!

Oi,

Qual foi a solução?

Tchauzin!

Na verdade, nao deu certo ainda…

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

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

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

Parece que resolveu com a ajuda da Lina…

Qualquer coisa volto a anunciar :wink:

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’

Para restaurar o quadro ao seu estado normal, chamamos o método setstate com o parâmetro ‘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.

[code]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);
    }

}[/code]