Tenho uma JInternalFrame principal que me serve como tela para desenhar graficos 2D, ela extende MouseAdapter e implementa MouseMotionListener, ela nao pode ser maximizada, nao pode ser minimizada nem fechada, tirei a barra de titulo, é um panel disfaçado…
quando abro uma outra JInternalFrame e tento mover ela em cima de um grafico desenhado na frame de baixo, a janela se move em slow motion…
O que pode ser???
Grato
Ninguem pode me ajuda? Não quero perde esse layout…
O “slow motion” se deve ao fato de você repintar excessivamente a tal janela de baixo enquanto a tal janela de cima é pintada.
Uma forma de você contornar esse problema é tratar o método paint, de modo que ele não seja chamado se não houver transcorrido algum tempo (digamos 100ms) de sua última execução.
Isso que lhe falei é um pouco de "quebra-galho". Basicamente seria algo como:
...
private long ultimaVez;
...
public void paint (Graphics g) {
long agora = System.currentTimeMillis();
if (agora - ultimaVez >= 50) { // digamos que você queira esperar pelo menos 50 ms
ultimaVez = System.currentTimeMillis();
... pôr o código antigo do paint aqui dentro...
}
}
...
Infelizmente isso nao pode me ajudar cara, o panel implementa mousemotion, e no evento de mousemoved, ele executa outras coisas e nao é so paint…pra um projeto desktop com tantos eventos, acho que não é o mais indicado usar tantos JInternalFrames, o ideal é usar jdialogs e ainda modais
grato