Tem um momento na minha aplicação que é executado um processo um pouco demorado…
Nesse tempo, coloco o meu cursor no modo de espera (WAIT_CURSOR)… e retorno para o modo default quando o processo termina…
O problema é que durante o tempo em que ele está no modo “WAIT_CURSOR” é possível ainda continuar usando o programa…
Queria que continuasse sendo possível movimentar o cursor na janela, porém a opção de clique fosse desabilitada até o processo terminar… impedindo o usuário de abrir alguma coisa no programa…
Opção 1 (melhor): Abra um JDialog modal na frente do seu programa com um texto pedindo para seu usuário aguardar e, preferencialmente, com uma barra de progresso. Se possível, você pode até colocar a opção de cancelar nessa janela também.
Opção 2 (pior): Coloque um Glasspane sobre sua janela: http://download.oracle.com/javase/tutorial/uiswing/components/rootpane.html#glasspane
PS: Estou assumindo que sua dúvida é de Swing. Ficou difícil saber é Swing ou web pois vc abriu no fórum de “Java Avançado”. Se for Swing, o local certo seria “Interface Gráfica”. Para web, “Desenvolvimento web”. Se for outra tecnologia, seria bom olhar a descrição dos fóruns para ver o local onde mais se encaixa.
AMON-HA
Fiz usando GlassPane… Mas só conseguir bloquear o clique do cursor…
Como eu posso bloquear o teclado também?
final JPanel glass = new JPanel();
glass.addMouseListener(new MouseAdapter() {});
glass.addMouseMotionListener(new MouseMotionAdapter() {});
glass.setOpaque(false);
janelaPrincipal.setGlassPane(glass);
glass.setVisible(true);
PS: não usei a “opção 1” porque a barra de progresso já se encontra na janela principal…