Obligar a JFrame a no cambiar el tamaño después de setResizable (false). El comando no funcionará

Tengo un sencillo programa de desbloqueo de Atari y, para resumir, uno de mis poderes especiales es permitir que el usuario cambie el tamaño de la ventana durante unos segundos, luego haga que la ventana no sea redimensionable nuevamente. Todo funciona bien, y la ventana deja de ser no redimensionable, a ser redimensionable durante unos segundos. Lo que se supone que debe suceder es que, después de transcurridos unos segundos, la ventana debe dejar de aceptar entradas para cambiar el tamaño de la ventana (IE: no debe ser redimensionable). El único problema es que cada vez que se supone que debe configurarse como no redimensionable, si mantiene el cursor arrastrando sobre la ventana para cambiar su tamaño, sigue cambiando de tamaño. Solo activará el estado no redimensionable de la ventana después de soltar la ventana. Mi pregunta es, ¿cómo hago para que esto suceda antes de que sueltes la ventana, quitándote el control del cambio de tamaño, una vez que se acabe el tiempo?

P.S: Quiero programar para evitar que cambie el tamaño de la ventana inmediatamente una vez que se invoca el comando, sin esperar a que suelte el mouse. ¿Alguna sugerencia?

Aquí hay un caso simplificado: (Se le dan 6 segundos para cambiar el tamaño de la ventana y jugar con ella)

package test;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.Timer;

public class Test {

    public static void main(String[] args) {        
        JFrame testFrame = new JFrame();
        testFrame.setResizable(true);
        testFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        long endingTime = System.currentTimeMillis() + 6000;
        Timer testTimer = new Timer(100, new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                if((endingTime - System.currentTimeMillis()) < 0){
                    testFrame.setResizable(false);
                }
            }
        });
        testFrame.setVisible(true);
        testTimer.start();
    }
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta