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 :

Atteindre un objet parent


Sujet :

AWT/Swing Java

  1. #21
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Tu met setModal(true); dans ta classe NewGame, juste avant le setVisible(true); et tu enlèves ceux de la classe appelante.

  2. #22
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    ben j aimerais que lorsque j ouvre la fenetre NewGame on ne puisse pas acceder a l autre fenetre

  3. #23
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Oui je vois, et bien fais ce que je t'ai dis ci-dessus , ca fonctionne tres bien.

  4. #24
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    Citation Envoyé par BiMouXeTTe
    Tu met setModal(true); dans ta classe NewGame, juste avant le setVisible(true); et tu enlèves ceux de la classe appelante.
    quand je fais cela la fentre ne se ferme plus quand j appel disposer()

  5. #25
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Allez un petit exemple :

    Main.java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class Main
    {
    	public static void main(String [] telsArgs)
    	{
    		new Fenetre();
    	}//main()
    }//class Wizard
    Fenetre.java
    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
    import java.awt.event.*;
    import javax.swing.*;
     
    public class Fenetre extends JDialog
    {
    	public Fenetre()
    	{
    		setTitle("Ma fenetre principale");
    		JPanel Pane = new JPanel();
    		getContentPane().add(Pane);
     
    		JButton Ok = new JButton("Ok");
    		Ok.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e)
    			{
    				disposer();
    			}
    		});
    		Pane.add(Ok);
     
    		pack();
    		setVisible(true);
    		new Modale();
    	}
     
    	private void disposer()
    	{
    		dispose();
    	}
    }
    Modale.java
    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
    import java.awt.event.*;
    import javax.swing.*;
     
    public class Modale extends JDialog
    {
    	public Modale()
    	{
    		setTitle("Nouvelle partie");
    		JPanel Pane = new JPanel();
    		getContentPane().add(Pane);
     
    		JButton Ok = new JButton("Ok");
    		getContentPane().add(Pane);
    		Ok.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e)
    			{
    				disposer();
    			}
    		});
    		Pane.add(Ok);
     
    		pack();
    		setModal(true);
    		setVisible(true);
    	}
     
    	private void disposer()
    	{
    		dispose();
    	}
    }

  6. #26
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    ma classe newGame

    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
     
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
     
    public class NewGame extends JDialog{
    	int NbRadioButtons = 0;
    	JRadioButton[] RadioButtons;
    	ButtonGroup Group;
    	JPanel Pane;
    	JPanel PaneSouth;
    	JButton Ok;
    	JButton Quit;
    	//JDialog Dialog;
     
    	public NewGame(){
    		setTitle("Nouvelle partie");
    		//Dialog = this;
    		setLocationRelativeTo(getParent());
     
    		setLayout(new BorderLayout());
    		Pane = new JPanel();
    		Pane.setLayout(new GridLayout(3, 3));
    		PaneSouth = new JPanel();
     
    		Ok = new JButton("Ok");
    		Quit = new JButton("Quitter");
     
    		NbRadioButtons = 3;
    		RadioButtons = new JRadioButton[NbRadioButtons];
    		RadioButtons[0] = new JRadioButton("10 x 10");
    		RadioButtons[0].setActionCommand("10x10");
    		RadioButtons[0].setSelected(true);
    		RadioButtons[1] = new JRadioButton("15 x 15");
    		RadioButtons[1].setActionCommand("15x15");
    		RadioButtons[2] = new JRadioButton("20 x 20");
    		RadioButtons[2].setActionCommand("20x20");
     
    		Group = new ButtonGroup();
    		for ( int i = 0 ; i < NbRadioButtons ; i++){
    			Group.add(RadioButtons[i]);
    			Pane.add(RadioButtons[i]);
    		}
     
    		PaneSouth.add(Ok);
    		PaneSouth.add(Quit);
     
    		add("South", PaneSouth);		
    		add("Center", Pane);
     
    		Ok.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				String Rep = Group.getSelection().getActionCommand();
     
    				int NbBuisson = 5, NbMouton = 5;
     
    				if (Rep == "10x10")
    					MainFrame.NewGame (10, 10, NbBuisson, NbMouton);
    				else if (Rep == "15x15")
    					MainFrame.NewGame (15, 15, NbBuisson, NbMouton);
    				else if (Rep == "20x20")
    					MainFrame.NewGame (20, 20, NbBuisson, NbMouton);
    				else
    					MainFrame.NewGame (10, 10, NbBuisson, NbMouton);
     
    				disposer();			
    			}
    		});
     
    		Quit.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				System.exit(0);
    			}
    		});
     
    		pack();
    		//setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);
     
    		//validate();
    		setResizable(false);
    		setModal(true);
    		setVisible(true);
     
    	}
     
    	private void disposer() { 
    		dispose(); 
    	}
    }
    elle ne se ferme plus quand je mets setmodel(true);

    edit : l autre fenetre n est pas une JDialog mais une JFrame ... c important ?

  7. #27
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Non ce n'est pas important, les deux fonctionnent. Fais voir la classe appelante please ?

  8. #28
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    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
    import java.awt.BorderLayout;
    import javax.swing.*;
    import java.awt.event.*;
     
    public class MainFrame extends JFrame{
    	private static MainFrame singleton = null;
     
    	private final int TAILLE_IMG = 30;
    	private Map GameMap;
     
    	private int TailleX = 0, TailleY = 0;
     
    	public MainFrame(int theTailleX, int theTailleY, int NbBuisson, int NbMoutons){
    		super("Kill Mouton");
    		singleton = this;
     
    		createMenuBar();
     
    		TailleX = theTailleX;
    		TailleY = theTailleY;	
     
    	    setLayout(new BorderLayout());	
     
    	    GameMap = Map.getMap(TailleX, TailleY, NbBuisson, NbMoutons);				
    	    add("Center", GameMap);
     
    		pack();
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		validate();
    		setVisible(true);
    		setResizable(false);
    		setLocationRelativeTo(getParent());
    	}
     
    	public static void NewGame(int theTailleX, int theTailleY, int NbBuisson, int NbMoutons){
    		if(singleton == null)
    			new MainFrame(theTailleX, theTailleY, NbBuisson, NbMoutons);
    		else{
    			getMainFrame().TailleX = theTailleX;
    			getMainFrame().TailleY = theTailleY;	
    			getMainFrame().getGameMap().Reset(theTailleX, theTailleY, NbBuisson, NbMoutons);
    		}
     
    		getMainFrame().setLocationRelativeTo(getMainFrame().getParent());
    	}
     
    	public static MainFrame getMainFrame() {
    		//if(singleton == null)
    		//	new MainFrame(10, 10);
    	    return singleton;
    	} 
     
    	public int getTailleImg(){
    		return TAILLE_IMG;
    	}
     
    	public int getTailleX(){
    		return TailleX;
    	}
     
    	public int getTailleY(){
    		return TailleY;
    	}
     
    	public void setGameMap(Map theMap){
    		GameMap = theMap;
    	}
     
    	public Map getGameMap(){
    		return GameMap;
    	}
     
    	public class MenuListener implements ActionListener {
    		public void actionPerformed(ActionEvent e) {
    			String cmd = e.getActionCommand();
     
    			if (cmd == "Nouvelle partie") {
    		       System.out.println("Nouvelle partie...");
     
    		       [size=18]new NewGame();[/size]
    		       //aNewGame.setModal(true);
    		       //aNewGame.setVisible(true);
    			}
    			else if (cmd == "Quitter") {
    				System.exit(0);
    		    }
     
    			getMainFrame().getGameMap().requestFocus();
    			getMainFrame().getGameMap().repaint();
    		}
    	}
     
    	public void createMenuBar() {
    		JMenuBar menuBar = new JMenuBar();
    		this.setJMenuBar(menuBar);
     
    		JMenu menu1 = new JMenu("Jeu");
    		menuBar.add(menu1);
    		MenuListener mL = new MenuListener();
     
    		JMenuItem menuItem11 = new JMenuItem("Nouvelle partie");
    		menuItem11.addActionListener(mL);
    		menu1.add(menuItem11);
     
    		menu1.addSeparator();
    		JMenuItem menuItem12 = new JMenuItem("Quitter");
    		menuItem12.addActionListener(mL);
    		menu1.add(menuItem12);
    	}
    }
    voila

  9. #29
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Quand on fait des singletons, le constructeur est private Déjà ça...

    Met ça en commentaire : getMainFrame().getGameMap().requestFocus();

  10. #30
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    Citation Envoyé par BiMouXeTTe
    Quand on fait des singletons, le constructeur est private Déjà ça...

    Met ça en commentaire : getMainFrame().getGameMap().requestFocus();
    ah je savais pas merci ...mais tj le meme prob ...

    la fenetre newgame arrive ...je clic sur ok l autre fenetre s ouvre... mais la fenetre newgame est tj la ...il faut que je clic sur ok pour la ferme ...

  11. #31
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Met un System.out.println("truc"); avant et après le dispose() dans la méthode disposer();, est-ce qu'il affiche les deux quand tu cliques sur le bouton ?

    Essayes de cliquer une deuxième fois s'il affiche les deux. Qu'est ce qu'il affiche ?

  12. #32
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    il met truc pour les deux !

  13. #33
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Il l'affiche deux fois a chaque fois ?

  14. #34
    Membre averti Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Points : 410
    Points
    410
    Par défaut
    Citation Envoyé par BiMouXeTTe
    Il l'affiche deux fois a chaque fois ?
    oui

  15. #35
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    bizarre et tu met bien la méthode disposer dans la classe NewGame et non dans la classe anonyme ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [VB.net] appeler un objet "parent"
    Par niouze dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 12/02/2007, 11h06
  2. Réponses: 2
    Dernier message: 01/11/2006, 03h18
  3. passer un objet dérivé a un objet parent
    Par airseb dans le forum C++
    Réponses: 9
    Dernier message: 30/10/2006, 19h11
  4. Réponses: 14
    Dernier message: 24/04/2006, 08h36

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