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 :

centrer+interdire le redimentionnement+fermer la fenetre


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é
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Par défaut centrer+interdire le redimentionnement+fermer la fenetre
    Bonjour ,


    Sur un projet j'ai du mal à centrer ma fenetre , à interdire le redimentionnement et à la fermer par un clic de la croix .

    je suis à la recherche d'aide pour pouvoir avancer dans mon application , merci d'avance .
    voici mon code :

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    package fenetres;
     
    import java.awt.*;
    import java.awt.event.*;
     
    import javax.swing.*;
    import struc_data.Interface;
     
    /**
     * Recherche un dossier
     * @author Benjamin Demattéo
     */
    public class Recherche implements ActionListener, KeyListener{
    	/**
             *  Zone de texte de la fenetre pour la recherche
             */
    	private JTextField zone;
    	/**
             *  Instance de visionneuse pour pouvoir revenir à l'application
             */
    	private Visioneuse visio;
    	/**
             *  Fenêtre graphique
             */
    	private JFrame fenetre;
     
    	/**
             * Constructeur
             * @param visioneuse Visioneuse pour retourner à la fenêtre principale
             */
    	public Recherche(Visioneuse visioneuse){
    		// On a besoin de pouvoir retrouver la fenetre qui a généré cette pop up
    		this.visio = visioneuse;
    		this.fenetre = new JFrame("Recherche");
     
     
    		//this.fenetre.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
     
     
    		this.fenetre.addKeyListener(this);
    		this.fenetre.setSize(500, 100);
     
    		this.fenetre.setLayout(new BorderLayout());
    		this.fenetre.setAlwaysOnTop(true);
     
     
    		this.fenetre.setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
    		this.fenetre.setResizable(false); //On interdit la redimensionnement de la fenêtre
    		this.fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// on dit à l'application de se fermer lors du clic de la croix
     
    		this.fenetre.pack();//adil :permet de mettre une bonne dimension a la fenetre
     
     
    		// On dispose les éléments (zone de texte au centre, bouttons en bas)
    		this.zone = new JTextField();
    		this.zone.addKeyListener(this);
    		this.fenetre.add(zone, BorderLayout.CENTER);
    		JPanel panel = Interface.makePanelGrid(1, 2);
    		Interface.makeButton("Rechercher", panel, this);
    		Interface.makeButton("Annuler", panel, this);
    		this.fenetre.add(panel, BorderLayout.SOUTH);
    		this.fenetre.setVisible(true);
    	}
     
    	/**
             * Actions réalisées selon les évènements
             */
    	public void actionPerformed(ActionEvent e) {
    		// Méthode qui permet de gérer les clics sur les bouttons de la fenêtre de recherche
    		Object source = e.getSource();
    		if (source instanceof JButton){
    			JButton butt = (JButton) source;
    			if (butt.getText().equals("Rechercher")){
    				int index = this.visio.getLiv().getIndexDossier(this.zone.getText());
    				if (index!=-1){
    					// Si on trouve un dossier, on change la valeur de courant, on raffraichit, et on retourne à la visionneuse
    					this.visio.setPosition(index);
    					JFrame fenetre_mere = this.visio.getJFrame();
    					fenetre_mere.setEnabled(true);
    					fenetre_mere.setVisible(true);
    					fenetre_mere.requestFocus();
    					this.fenetre.dispose();
    					this.visio.raffraichir();
    				}else{
    					// Si il n'y a pas de résultat, on le notifie, et on revient à la visionneuse
    					this.fenetre.dispose();
    					Message mess = new Message("Recherche", "Il n'y a pas de dossier correspondant à votre recherche", this.visio);
    					mess.show();
    				}
    			}else if (butt.getText().equals("Annuler")){
    				// On ferme la fenêtre et on revient à la visionneuse
    				this.fenetre.dispose();
    				this.visio.raffraichir();
    				JFrame fenetre_mere = this.visio.getJFrame();
    				fenetre_mere.setEnabled(true);
    				fenetre_mere.setVisible(true);
    			}
    		}
    	}
     
    	/**
             * Non utilisée
             */
    	public void keyPressed(KeyEvent e) {}
     
    	/**
             * Actions lancées par le clavier
             */
    	public void keyReleased(KeyEvent e) {
    		System.out.println(e.getKeyCode()+" : "+e.getKeyChar());
    		if ( e.getKeyCode()==10){
    			int index = this.visio.getLiv().getIndexDossier(this.zone.getText());
    			if (index!=-1){
    				// Si on trouve un dossier, on change la valeur de courant, on raffraichit, et on retourne à la visionneuse
    				this.visio.setPosition(index);
    				JFrame fenetre_mere = this.visio.getJFrame();
    				fenetre_mere.setEnabled(true);
    				fenetre_mere.setVisible(true);
    			}else{
    				// Si il n'y a pas de résultat, on le notifie, et on revient à la visionneuse
    				Message mess = new Message("Recherche", "Il n'y a pas de dossier correspondant à votre recherche", this.visio);
    				mess.show();
    			}
    			this.fenetre.dispose();
    			this.visio.getJFrame().requestFocus();
    			this.visio.raffraichir();
    		}
    	}
     
    	/**
             * Non utilisée
             */
    	public void keyTyped(KeyEvent e) {}
    }

  2. #2
    Membre confirmé
    Profil pro
    Ingénieur
    Inscrit en
    Mars 2009
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Mars 2009
    Messages : 152
    Par défaut
    Code pour empecher le redimmensionnement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            //taille fixe
            fenetre.setResizable(false);
    Code pour quitter l'appli quand on clique sur la croix:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    		// Defini l'option de fermeture
            fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Code pour centrer la fenetre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // Lecture de la taille de l'écran 
    		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
     
    		/* la fenêtre prend sa taille... */
    		fenetre.setLocation(
    		        (screenSize.width-getWidth())/2,
    		        (screenSize.height-getHeight())/2
    		);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Par défaut
    Citation Envoyé par laurentze Voir le message
    Code pour empecher le redimmensionnement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            //taille fixe
            frame.setResizable(false);
    Code pour quitter l'appli quand on clique sur la croix:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    		// Defini l'option de fermeture
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Code pour centrer la fenetre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    // Lecture de la taille de l'écran 
    		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
     
    		/* la fenêtre prend sa taille... */
    		setLocation(
    		        (screenSize.width-getWidth())/2,
    		        (screenSize.height-getHeight())/2
    		);

    Bonjour,

    Merci de votre réponse .
    j'ai essayé votre code mais j'ai toujours le meme preobleme

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par emayen01 Voir le message
    j'ai essayé votre code mais j'ai toujours le meme preobleme
    En même temps a part 'j'ai du mal' t'as pas dit quel était le problème (elle ferme pas? Elle se centra pas? PAs la bonne taille? ....)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    En même temps a part 'j'ai du mal' t'as pas dit quel était le problème (elle ferme pas? Elle se centra pas? PAs la bonne taille? ....)
    Rebonjour,
    La fenêtre ne se ferme pas , n'est pas centré et on peut toujours changer sa taille .

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    alors tu travaille probablement pas sur la même fenetre, y a tout ce qui faut dans le code pour cette fenetre là.

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    le setSize() ne sert a rien avant le pack()

    le pack() est à appeler quand tous les composants sont dans la feneètre (là tu fais encore des add() après.

Discussions similaires

  1. [Swing] fermer une fenetre enfant avec un bouton.
    Par TheSeb dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 23/11/2013, 12h42
  2. Empecher l utilisateur de fermer la fenetre
    Par gilles641 dans le forum Langage
    Réponses: 12
    Dernier message: 21/07/2005, 11h04
  3. Comment fermer une Fenetre Modal avec Code ?
    Par Soulama dans le forum Langage
    Réponses: 19
    Dernier message: 13/07/2005, 11h17
  4. Réponses: 3
    Dernier message: 30/06/2005, 12h50
  5. Confirmation avant de fermer une fenetre
    Par Dauphin dans le forum C++Builder
    Réponses: 10
    Dernier message: 26/05/2005, 00h27

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