IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Agents de placement/Fenêtres Java Discussion :

[JFrame] premier plan


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de thief
    Inscrit en
    Décembre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 93
    Par défaut [JFrame] premier plan
    Salut à tous!
    J'ai un projet qui doit exiger une identifiaction avant d'acceder aux ressource d'un machine et j'utilise java JFrame!
    Mon est: comment maintenir JFrame toujours au premier plan?
    Genre, etre le seul actif tant que l'utilisateur ne s'identifie pas!

    Merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 85
    Par défaut
    Salut,

    Bon je sais pô si c bien c que tu veux, mais pour que la Frame soit au premier plan, utilise la méthode toFront();

    Après, faut que t'implémentes un listener qui appelle cette méthode à chaque fois que ta frame perd le focus (dsl, je sais plus trop lequel c, pe ComponentListener, regarde du côté de la doc de java).

  3. #3
    Membre confirmé Avatar de thief
    Inscrit en
    Décembre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 93
    Par défaut
    "le prophete"
    Merci pour ton interet! J'ai essayé ton idée mais ça ne fait pas l'affaire. La bar des taches est toujours actives et donc un clic dessus met ma JFrame dernière.

    j

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    hello,

    essaie la méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maJFrame.setAlwaysOnTop(true);
    un seul problème: cette méthode existe uniquement à partir du J2SE 1.5 (encore en version beta)


  5. #5
    Membre confirmé Avatar de thief
    Inscrit en
    Décembre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 93
    Par défaut
    salut!
    cette fonction JFrame ne fait pas l'affaire!. Au fait je voudrai que la fenetre soit la seule que l'utilisateur puisse acceder. Si par exemple il la ferme elle se reaffiche (deja implementé ). Mais j'arrive pas à bloqué le systeme avec mon JFrame pour jouer se role!

    Au Fait mon JFrame contient : JPassword , JTextField et un Button. Il faut rentrer le bon mot de passe et Identifiant pour acceder aux ressources de la machine.
    J'attend vos propositions please.

  6. #6
    Membre Expert
    Avatar de Ioan
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 737
    Par défaut
    Bonjour,
    C'est pas une JFrame qu'il te faut, mais un JDialog modal.
    Bonne chance.
    @+
    Les FAQs Java, J2EE, JDBC, Struts > Les cours > Le Forum Java.
    Merci de respecter les règles du club.
    Mon blog : quelques news sur Java, Linux et le monde de l'Open Source.

  7. #7
    Membre confirmé Avatar de thief
    Inscrit en
    Décembre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 93
    Par défaut
    voila votre le code du dialog modal:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
      public class EssaiDialog extends javax.swing.JDialog {
     
        /** Creates new form EssaiDialog */
        public EssaiDialog(java.awt.Frame parent, boolean modal) {
            super(parent, modal);
            initComponents();
            this.setBounds(150,100,400,200);
        }
     
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        private void initComponents() {
     
            setModal(true);
            setAlwaysOnTop(true);
            addWindowListener(new java.awt.event.WindowAdapter() {
                public void windowClosing(java.awt.event.WindowEvent evt) {
                    closeDialog(evt);
                }
            });
     
            pack();
        }
     
        /** Closes the dialog */
        private void closeDialog(java.awt.event.WindowEvent evt) {
            setVisible(false);
            dispose();
        }
     
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            new EssaiDialog(new javax.swing.JFrame(), true).show();
        }
     
     
        // Variables declaration - do not modify
        // End of variables declaration
     
    }
    ça ne fait toujours pas l'affaire!!!

  8. #8
    Membre Expert
    Avatar de Ioan
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 737
    Par défaut
    Bonjour,
    Désolé, j'ai parlé un peu trop vite. La modalité se joue par rapport au parent. Voila une astuce :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    public class EssaiDialog{
    	private Ecran ecran; 
    	private JDialog dialog;
    	private JTextField jtf;
    	private JButton jb;
    	public EssaiDialog() {
    		ecran = new Ecran();
    		dialog = new JDialog(ecran,true);
    		initComponents();
    		dialog.setVisible(true);
    	}
    	private void initComponents() {
    		jtf = new JTextField();
    		jb = new JButton("Ok");
    		jb.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent ae){
    				System.out.println("vous avez écrit : "+jtf.getText());
    				closeDialog(null);
    			}	
    		});
    		dialog.getContentPane().add(jtf, BorderLayout.CENTER);
    		dialog.getContentPane().add(jb, BorderLayout.SOUTH);
    		dialog.addWindowListener(new java.awt.event.WindowAdapter() {
    			public void windowClosing(java.awt.event.WindowEvent evt) {
    				closeDialog(evt);
    			}
    		});
    		dialog.pack();
    		dialog.setLocationRelativeTo(null);
    	}
    	private void closeDialog(java.awt.event.WindowEvent evt) {
    		dialog.setVisible(false);
    		dialog.dispose();
    		ecran.setVisible(false);
    		ecran.dispose();
    	}
    	private class Ecran extends JFrame{
    		private Image image;
    		public Ecran(){
    			super();
    			setUndecorated(true);
    			Dimension taille = Toolkit.getDefaultToolkit().getScreenSize();
    			try{
    				image = new Robot().createScreenCapture(new Rectangle(0,0,
    														(int)taille.getWidth(),
    														(int)taille.getHeight()));
    				MediaTracker mt = new MediaTracker(this);
    				mt.addImage(image,0);
    				mt.waitForAll();
    			}catch(Exception e){e.printStackTrace();}
    			setSize(taille);
    			setVisible(true);
    		}	
    		public void paint(Graphics g){
    			g.drawImage(image,0,0,null);
    		}
    	}
    	public static void main(String args[]) {
    		new EssaiDialog();
    	}
    }
    C'est juste une astuce, si quelqu'un a une solution plus propre, je suis preneur
    J'espère que j'ai pu t'aider.
    Bonne chance.
    @+
    Les FAQs Java, J2EE, JDBC, Struts > Les cours > Le Forum Java.
    Merci de respecter les règles du club.
    Mon blog : quelques news sur Java, Linux et le monde de l'Open Source.

  9. #9
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Citation Envoyé par thief
    salut!
    cette fonction JFrame ne fait pas l'affaire!
    de quoi tu parle ? du setAlwaysOnTop(true) ?

    si tu veux juste empecher la fermeture, c'est avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maJFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    mais là l'utilisateur peut la cacher avec une autre fenêtre... et c'est là qu'intervient le setAlwaysOnTop

  10. #10
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Par défaut
    N'essaye tu pas d'empecher l'accès au bureau windows par un frame non validé par l'utilisateur par hasard ?
    C'est ce que je comprend en lisant tes posts.

  11. #11
    Membre confirmé Avatar de thief
    Inscrit en
    Décembre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 93
    Par défaut
    Bonjour!
    Je m'excuses pour ce silence! .N'en pouvant plus j'ai pris cinq jours de congé pour mettre les idées sur place.

    Citation Envoyé par Alwin
    N'essaye tu pas d'empecher l'accès au bureau windows par un frame non validé par l'utilisateur par hasard ?
    C'est ce que je comprend en lisant tes posts.
    c'est exactement ce que j'essaie de faire!

    Merci pour votre aide!

  12. #12
    Membre confirmé Avatar de thief
    Inscrit en
    Décembre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 93
    Par défaut
    Bonjour!
    J'ai testé le code il est tout simplement parfait! :o


    Citation Envoyé par vedaer
    Bonjour,
    Désolé, j'ai parlé un peu trop vite. La modalité se joue par rapport au parent. Voila une astuce :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    public class EssaiDialog{
    	private Ecran ecran; 
    	private JDialog dialog;
    	private JTextField jtf;
    	private JButton jb;
    	public EssaiDialog() {
    		ecran = new Ecran();
    		dialog = new JDialog(ecran,true);
    		initComponents();
    		dialog.setVisible(true);
    	}
    	private void initComponents() {
    		jtf = new JTextField();
    		jb = new JButton("Ok");
    		jb.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent ae){
    				System.out.println("vous avez écrit : "+jtf.getText());
    				closeDialog(null);
    			}	
    		});
    		dialog.getContentPane().add(jtf, BorderLayout.CENTER);
    		dialog.getContentPane().add(jb, BorderLayout.SOUTH);
    		dialog.addWindowListener(new java.awt.event.WindowAdapter() {
    			public void windowClosing(java.awt.event.WindowEvent evt) {
    				closeDialog(evt);
    			}
    		});
    		dialog.pack();
    		dialog.setLocationRelativeTo(null);
    	}
    	private void closeDialog(java.awt.event.WindowEvent evt) {
    		dialog.setVisible(false);
    		dialog.dispose();
    		ecran.setVisible(false);
    		ecran.dispose();
    	}
    	private class Ecran extends JFrame{
    		private Image image;
    		public Ecran(){
    			super();
    			setUndecorated(true);
    			Dimension taille = Toolkit.getDefaultToolkit().getScreenSize();
    			try{
    				image = new Robot().createScreenCapture(new Rectangle(0,0,
    														(int)taille.getWidth(),
    														(int)taille.getHeight()));
    				MediaTracker mt = new MediaTracker(this);
    				mt.addImage(image,0);
    				mt.waitForAll();
    			}catch(Exception e){e.printStackTrace();}
    			setSize(taille);
    			setVisible(true);
    		}	
    		public void paint(Graphics g){
    			g.drawImage(image,0,0,null);
    		}
    	}
    	public static void main(String args[]) {
    		new EssaiDialog();
    	}
    }
    C'est juste une astuce, si quelqu'un a une solution plus propre, je suis preneur
    J'espère que j'ai pu t'aider.
    Bonne chance.
    @+
    ça resoud mon problème!
    Merci à vous tous

  13. #13
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Bonjour, je ne veux pas jouer les taquineurs mais aussi bien que soit cette solution, elle n'empèche pas l'accès aux ressources de ta machine.

    Pour t'en convaincre, il suffit d'appuyer sur la touche W95 (entre alt et ctrl) qui affiche la barre de menu de window.
    Tu reprends la main et tu vois même ta frame java dans la barre.

    Essaie peut être avec le passage en mode plein écran pour avoir l'exclusivité de l'affichage ...

    http://java.developpez.com/faq/java/...SIN_fullscreen

    Je suis également preneur de toutes solutions ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JFrame] Affichage d'une application toujours au premier plan
    Par michaeljeru dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 06/12/2006, 22h49
  2. JFrame au premier plan
    Par bobic dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 14/07/2006, 11h41
  3. Réponses: 2
    Dernier message: 14/03/2004, 22h04
  4. Premier plan sur un dialog
    Par |PaRa-BoL dans le forum MFC
    Réponses: 5
    Dernier message: 04/03/2004, 12h52
  5. forcer une fenetre à etre au premier plan jusqu'a ...
    Par peppena dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 22/12/2003, 16h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo