JOptionPane está minimizando meus frames. Como impedir isso?

Tenho uma tela principal que chama outra tela. Quando esta tela é chamada, seto a tela principal com um editable(false). Ao clicar em um botao nessa segunda tela, chamo um joptionpane apenas com um botão de ok. Quando clico neste botao, essa segunda tela é minimizada e ainda a tela principal é setada para editable(true).

Como faço para desabilitar isso? Quero só clicar e fechar o joptionpane.

Obs: tentei passar o Component parent mas não funcionou.

cara, essa segunda tela deve ser um JDialog, se sim chame o método setModal(true) ao invés do setEnabled. O modal impede que o frame que o chamou seja mexido enquanto o Dialog estiver aberto. Um exemplo de Modal é o JOptionPane. Abra ele e tente mexer na janela de trás para ver o que acontece.

Hugs :smiley:

É um JFrame mesmo.

É inconveniente demais toda vez que fecho o JOptionPane o frame minimiza.

Estou criando um JDialog pra usar no lugar no JOptionPane enquanto isso.

[quote=geidivan]É um JFrame mesmo.

É inconveniente demais toda vez que fecho o JOptionPane o frame minimiza.

Estou criando um JDialog pra usar no lugar no JOptionPane enquanto isso. [/quote]

O Dialog Deve fivar no lugar da segunda janela e não do OptionPane.

Ganbate Kudasai!! :smiley:

Fiz um Dialog e mesmo assim não deu.

Quando o chamo a partir de outro dialog funciona ok, mas quando um frame chama o Dialog ocorre esse erro. Ele trava o frame ok, mas quando fecho esse dialog o frame que o chamou minimiza.

Preciso usar frames porque sao telas grande e cheias de componentes.

posta teu código ai pra gente dá uma olhada :!:

import javax.swing.ImageIcon;
import javax.swing.JDialog;

public class jMessage extends JDialog {

    public static final int INFORMACAO = 1;
    public static final int ERRO = 2;
   
    /** Creates new form jLogin */
    public jMessage(String text, int type) {                       
        initComponents();
        jL1.setText(text);
        this.setModal(true);                                                
        setType(type);
        setLocationRelativeTo(null);  
        this.setVisible(true);
        
        this.setSize(51 + jL1.getBounds().width, this.getHeight());
     }

private void jBOk_OnClick(java.awt.event.ActionEvent evt) {                                 
   this.dispose();   
}
                               
private void setType(int type) {
 
   if (type == 2) {
      this.setTitle("Mensagem de erro");
      jLImg.setIcon(new ImageIcon(getClass().getResource("/images/erro.png")));
   }   
   else {
      this.setTitle("Mensagem de aviso");      
      jLImg.setIcon(new ImageIcon(getClass().getResource("/images/informacao.png")));      
   }
      
}

   private javax.swing.JButton jBOk;
   private javax.swing.JLabel jL1;
   private javax.swing.JLabel jLImg;

}

E na minha classe de controle eu o chamo

new jMessage("Erro", 2);

ai eu num vi erro, onde está o JOptionPane nisso?

Como disse, deixei de usar o JOptionPane e estou usando um Dialog que criei achando que ia resolver, mas deu na mesma.

Poste um código “rodável” mostrando o erro, com main e tudo. (leia sobre SCCEE)

Pessoal, consegui.

Na verdade nem eu sei o que fiz (acho que nada) mas parou de dar o erro. Está funcionando ok em qualquer lugar que chamo.