Impedir sair da janela em quanto

3 respostas
progJava

Como impedir que o usuario va para outra janela enquanto não fazer alguma ação na janela atual ?

3 Respostas

discorpio

Bom dia ProgJava.

Voce consegue abrir uma [color=blue]Janela Modal (Concentrar o foco nela)[/color] quando voce cria uma janela “JDialog”, ou seja, uma classe que extenda “JDialog” ao invés de extender “JFrame”.

Para que o JDialog esteja como Modal, voce tem que implementar no seu Construtor, passando um dos parâmetros como [color=blue]True"[/color], desta forma:

super(null, "Título do Form", True);

Um exemplo de classe JDialog

// identificando o pacote
package meupacote;

// importando outras classes necessárias a esta.
import java.awt.Font;
import javax.swing.JDialog;
....
....

public classe MinhaClasseModal extends JDialog {
        
       // Declaração de variáveis
       private JLabel prompt = null;

      // Implementando o Construtor desta classe.
      public MinhaClasseModal(JFrame parent) {
           // Aqui voce invoca o construtor da super classe, passando um dos parâmetros como "True"
           super(parent, "Título da Minha Classe Modal", true);
           .....
           .....
           .....
      }
      
       ....
       ....
       ....
}

Esta é a forma que eu conheço de como implementar um formulário Modal, se existe outra forma, então que alguém post aqui.

progJava

Voce term algum ex mais claro ,na pratica? Obrigado

discorpio

Boa tarde Progjava

Estou enviando via download, este pequeno projeto para que voce tenha uma idéia de como fazê-lo.

Chamo a atenção que ele fica apenas modal em relação ao programa de sua aplicação, se a janela principal de sua aplicação for menor que a janela do windows, e voce clicar em outra janela aberta do windows, o modal não funciona nestes casos, porque quem tem o controle de janela modal de sua aplicação é a janela principal de sua aplicação e se esta tomar todo a tela de seu monitor, então funcionará o modal.

Alerto também que o método que chama o formulário InputMask que é JDialog e este:

public static String inputBox(JFrame caller, String mens, String title, String mask){
        InputMask imask = new InputMask(caller, mens, title, mask);
        return imask.getResponse();
  }

E ele é invocado quando voce clica no sub menu consultar que está em nenu arquivo, acionando o seguinte evento:

public void actionPerformed(ActionEvent e) {
        if (e.getSource()==menuitemfind){
            String resp = inputBox(this,"Digite a data ","Pesquisando data","##/##/####");
            if ("".equals(resp)){
                mensagem("Data em branco ou operação cancelada", "Aviso");
            } else {
                lbldata.setText(resp);
            }
        }
    }
Criado 4 de abril de 2010
Ultima resposta 6 de abr. de 2010
Respostas 3
Participantes 2