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

AWT/Swing Java Discussion :

Action sur une Fenetre


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Par défaut Action sur une Fenetre
    Bonjour à tous,

    J'ai un problème au niveau de ma JFrame ou de ma class Cancel qui étend de JButton.

    Alors voilà mon application en deux mot : J'ouvre la fenêtre principal qui elle contient une série de bouton, qui sont tous des classes soit dit en passant.

    J'ai donc un bouton "Voir" qui m'ouvre une nouvel JFrame(Vue_Recherche) ou je peux faire une petite recherche sur un Nom ou un Code_client. Cette petite fenêtre contient deux boutons un "OK" l'autre "Cancel". J'aimerais qu'à chaque fois que j'appelle "Cancel" le bouton ferme la fenêtre qui lance l'action sur ce bouton et seulement celle-ci.

    Tout en sachant que cette class "Cancel" est appelé par plusieurs autres JFrame... J'ai essayé bon nombre de chose qui se sont soldé par des échecs

    Quelqu'un pourrait m'aider s'il vous plait ou même pitié ?
    Aussi une petite vite fait. Savez-vous comment bloquer la fenêtre en cours d'utilisation pour empêcher d'aller sur la fenêtre principal ?

    Voilà ma class Cancel :
    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
     
    class Cancel extends JButton  implements MouseListener{
    	public Cancel(){
    		super();
    		//JButton Cancel = new JButton();
    		this.setPreferredSize(new Dimension(75, 25));
    		this.setText("Cancel");
    		this.addMouseListener(this);
    	}
    	public void fermer(){
     
    	}
    	public void mouseClicked(MouseEvent e){
     
    	} 
    	public void mouseEntered(MouseEvent e) {}
    	public void mouseExited(MouseEvent e){} 
    	public void mousePressed(MouseEvent e) {}
    	public void mouseReleased(MouseEvent e) {}
    }
    Et mes ma class Vue_recherche :
    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
     
    package vue;
     
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.GridLayout;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
     
     
     
    public class Vue_Recherche extends JFrame{
     
    	public Vue_Recherche(){
    		//Titre de la fenêtre
    		super("Voir || Rechercher");
     
    		//Taille fenêtre
    		this.setSize(300,150);
     
    		//Redimension de la fenetre False
    		this.setResizable(false);
     
    		//Récupérer taille écran
    	    Dimension d1 = this.getToolkit().getScreenSize();
     
    	    //Récupérer taille fenêtre
    	    Dimension d2 = this.getSize();
     
    	    //Positioner la fenêtre au centre
    	    this.setLocation(d1.width/2 - d2.width/2, d1.height/2 - d2.height/2);
     
    	    //Un dispose qui fait joli... est-il nécessaire ? J'en sais rien
    	    this.dispose();
     
    	    this.add(new Recherche());
     
    	}
    	public Vue_Recherche(boolean bool){
    		if(bool == true){
    		this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
    		}
    	}
     
    	class Recherche extends JPanel{
    		public Recherche(){
     
    			OK ok = new OK();
    			Cancel cancel = new Cancel();
    			cancel.fermer();
     
    			this.setLayout(new BorderLayout());
    			JLabel text = new JLabel("Veuillez saisir le code client OU le nom");
    			//this.add(text, BorderLayout.NORTH);
    			JPanel Text = new JPanel();
    			Text.setLayout(new FlowLayout());
    			Text.add(text);
    			this.add(Text, BorderLayout.NORTH);
     
     
    			JLabel code = new JLabel("Code client :");
    			//this.add(code);
    			JTextField txtCode = new JTextField();
    			//txtCode.setPreferredSize(new Dimension(100,25));
    			//this.add(txtCode);
     
    			JLabel nom = new JLabel("Nom :");
    			//this.add(nom , BorderLayout.SOUTH);
    			JTextField txtNom = new JTextField();
    			//txtNom.setPreferredSize(new Dimension(100,25));
    			//this.add(txtNom , BorderLayout.CENTER);
     
    			JPanel Grille = new JPanel();
    			Grille.setLayout(new GridLayout(3,2,5,5));
    			Grille.add(code);
    			Grille.add(txtCode);
    			Grille.add(nom);
    			Grille.add(txtNom);
    			Grille.add(ok);
    			Grille.add(cancel);
     
    			this.add(Grille, BorderLayout.CENTER);
     
    		}
    	}
    }
    Un grand merci à tous pour votre aide et vos conseils.
    Bonne journée.

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Peut être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Component source = (Component)evt.getSource();
    SwingUtilities.windowForComponent(source).dispose();
    À la place de dispose, tu peux mettre setVisible(false), ou autre.

  3. #3
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    plus simplement, la classe JOptionPane permet de faire ce que tu veux, il me semble.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  4. #4
    Membre éclairé Avatar de LhIaScZkTer
    Inscrit en
    Mai 2004
    Messages
    564
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2004
    Messages : 564
    Par défaut
    Merci pour vos réponse

    Malheureusement j'ai pas encore le temps de tester cela mais je le ferais dès que possible!!!

    J'ai trouvé un truc à la place qui est :
    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
     
    class Cancel extends JButton  implements MouseListener{
    	JFrame parent = null;
    	public Cancel(JFrame frame){
    		super();
    		this.parent = frame;
    		//JButton Cancel = new JButton();
    		this.setPreferredSize(new Dimension(75, 25));
    		this.setText("Cancel");
    		this.addMouseListener(this);
    	}
    	public void mouseClicked(MouseEvent e){
    		System.out.println("Boutton  Cancel");
    		if (parent instanceof Vue_MaSociete || parent == null) {
    			System.exit(0);
    		} 
    		else 
    		{
    			this.parent.dispose();
    		}
     
     
     
    	} 
    	public void mouseEntered(MouseEvent e) {}
    	public void mouseExited(MouseEvent e){} 
    	public void mousePressed(MouseEvent e) {}
    	public void mouseReleased(MouseEvent e) {}
    }
    Et à chaque foi que j'utilise le bouton cancel dans n'importe quel nouvel fenêtre j'ai quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	class Recherche extends JPanel implements ActionListener{
    		private JFrame parent= null;
    		public Recherche(JFrame frame){
    			parent = frame;
    			Cancel cancel = new Cancel(parent);
    }
    Voilà j'ai épuré le code au maximum
    Merci pour vos réponse je vais essayer de tester ça plus tard.
    Bonne journée à tous

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

Discussions similaires

  1. [C#2.0]location d'un control sur une fenetre
    Par chnew dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/04/2006, 16h15
  2. [Tableaux] action sur une variable ->
    Par mactech dans le forum Langage
    Réponses: 9
    Dernier message: 15/12/2005, 18h01
  3. Réponses: 4
    Dernier message: 24/11/2005, 09h34
  4. Action sur une image
    Par frutix dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 21/10/2005, 11h04
  5. Aide sur une fenetre
    Par Ray-j dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 29/11/2002, 08h51

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