2016-07-29 1 views
0

J'ai 2 cadres sur mon projet, le 1 est mon cadre principal et le 2ème est le cadre qui n'est visible que si je clique sur le bouton.régler JFrame toujours sur le dessus et désactiver tout JFrame derrière lui

Afficher jframe.class lorsque le bouton est activé.

voici mon code dans mon action bouton réalisé

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
     jframe jf = new jframe(); 
      jf.setVisible(true); 
      jf.setAlwaysOnTop(true); 
    } 

Ce code fonctionne, mais le problème est que je veux que le principal disable cadre ou cliquables tandis que le 2ème cadre est visible ...

puis-je faire cela le même concept de JOptionPane?

+2

Voir [Utilisation de JFrames multiples, Bonne/mauvaise pratique?] (Http://stackoverflow.com/q/9554636/418556) –

Répondre

6

Vous parlez essentiellement d'un modal. Vous devez utiliser un JDialog et définir la modalité true en passant le JFrame dans un argument:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){ 
    myFrame = new JFrame("Hello World"); 
    modal = new JDialog(myFrame, "This is a modal!", true); 
    modal.setVisible(true); 
    modal.setLocationRelativeTo(null); //Center the modal 
} 

Vous trouverez de plus amples documents ici:

https://docs.oracle.com/javase/tutorial/uiswing/misc/modality.html

+0

peut-être ma question est si mauvaise à comprendre ... désolé à ce sujet ... –

+0

Peut-être que vous ne comprenez pas la réponse, mais il est le même que beaucoup donneraient pour cette exigence. C'est un ajustement évident. Si vous avez suivi le lien que j'ai fourni dans le commentaire, vous pourriez le noter également mentionné (parmi beaucoup d'autres possibilités) des dialogues modaux. –

+0

la vérité est que j'ai une jframe principale et si la souris ne bouge pas, elle affichera automatiquement le formulaire de connexion et rendra la jframe principale désactivée. j'espère que vous comprenez ce que je veux dire .. désolé pour mon mauvais anglais :-) –