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 :

Fenêtres internes (JInternalFrame)


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Par défaut Fenêtres internes (JInternalFrame)
    Salut,
    Je développe une GUI pour une petite application. Mon code est le suivant :

    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
    package package_01;
     
    import javax.swing.*;
    import java.awt.event.KeyEvent;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    public class Class_01 
    {
    	public static void main(String[] argv)
    	{
    		JFrame fr = new JFrame("Application_X");
    		fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		fr.setBounds(250, 250, 800, 600);
    		fr.setResizable(false);
     
    		// Création de la barre de menus
    		JMenuBar mb = new JMenuBar();
     
    		// Création et inclusion du menu 'Démarrer'
    		JMenu m1 = new JMenu("Démarrer");
    		m1.setMnemonic(KeyEvent.VK_D);
    		m1.getAccessibleContext().setAccessibleDescription("Menu 'Démarrer'");
    		mb.add(m1);
     
    		// Création et inclusion des sous-menus du menu 'Démarrer'
    		JMenuItem mi11 = new JMenuItem("Dossier personnel", KeyEvent.VK_P);
    		mi11.setToolTipText("Accéder à votre dossier personnel");
    		mi11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));
    		mi11.getAccessibleContext().setAccessibleDescription("Sous-menu 'Dossier personnel' du menu 'Démarrer'");
    		m1.add(mi11);
     
    		m1.addSeparator();
     
    		JMenuItem mi12 = new JMenuItem("Quitter", KeyEvent.VK_Q);
    		mi12.setToolTipText("Fermer l'application");
    		mi12.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, ActionEvent.ALT_MASK));
    		mi12.getAccessibleContext().setAccessibleDescription("Sous-menu 'Quitter' du menu 'Démarrer'");
    		mi12.addActionListener(new ActionListener()
    		{public void actionPerformed(ActionEvent e){System.exit(0);}});
    		m1.add(mi12);
     
    		// Création et inclusion du menu 'Outils'
    		JMenu m2 = new JMenu("Outils");
    		m2.setMnemonic(KeyEvent.VK_O);
    		m2.getAccessibleContext().setAccessibleDescription("Menu 'Outils'");
    		mb.add(m2);
     
    		// Création et inclusion des sous-menus du menu 'Outils'
    		JMenuItem mi21 = new JMenuItem("Options", KeyEvent.VK_T);
    		mi21.setToolTipText("Régler vos préférences");
    		mi21.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_3, ActionEvent.ALT_MASK));
    		mi21.getAccessibleContext().setAccessibleDescription("Sous-menu 'Options' du menu 'Outils'");
    		m2.add(mi21);
     
    		// Création et inclusion du menu 'Aide'
    		JMenu m3 = new JMenu("Aide");
    		m3.setMnemonic(KeyEvent.VK_A);
    		m3.getAccessibleContext().setAccessibleDescription("Menu 'Aide'");
    		mb.add(m3);
     
    		// Création et inclusion des sous-menus du menu 'Aide'
    		JMenuItem mi31 = new JMenuItem("À propos", KeyEvent.VK_R);
    		mi31.setToolTipText("En savoir plus sur Application_X");
    		mi31.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_4, ActionEvent.ALT_MASK));
    		mi31.getAccessibleContext().setAccessibleDescription("Sous-menu 'À propos' du menu 'Aide'");
    		mi31.addActionListener(new ActionListener()
    		{public void actionPerformed(ActionEvent e){JOptionPane.showMessageDialog(null,"Application_X v1.0 - 2007", "À propos", JOptionPane.INFORMATION_MESSAGE);}});
    		m3.add(mi31);
     
    		// Inclusion de la barre des menus
    		fr.setJMenuBar(mb);	
     
    		fr.setVisible(true);
    	}
    }
    Ce que je voudrais faire c'est lancer des fenêtres internes lors du click sur les sous-menus 'Dossier personnel', 'Options'. Je n'ai pas de problème avec les écouteurs. Ce que je voudrais savoir c'est comment créer des fenêtres internes.

    Merci !

  2. #2
    Invité
    Invité(e)
    Par défaut
    salut,
    dans les fonctions actionperformed des boutons avec les quelles tu désire lancer les fenêtres tu crée des instances de la jinternalframe de ton application.
    bon ton code il vaut mieux tu crée une classe Fenetre qui hérite de JFrame et une classe FenetreInterieur qui hérite de JinternalFrame. comme ça c'est plus méthodique, plus simple et plus organisé.

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 159
    Par défaut
    Il faut aussi que tu places un JDesktopPane dans ton frame et à l'intérieur de celui-ci, tu met les JInternalFrame.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Par défaut
    Salut et merci de vos réponses.
    Sinon, voici ce que j'ai fais :

    J'ai ajouté ce bout de code au début :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    JDesktopPane dp = new JDesktopPane();
    final JInternalFrame ifr1 = new JInternalFrame("Authentification");
    dp.add(ifr1);
    fr.setContentPane(dp);
    Et ceci pour le sous-menu 'Dossier personnel' :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    mi21.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent e){ifr1.setVisible(true);}
    });
    Mais, ça ne marche pas. Une idée ?

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 159
    Par défaut
    Essayes d'abord d'afficher ton InnerPanel sans événement. ça marche?
    Pour le menu moi j'utilise un mouseactionlistener, je n'ai pas essayé de le faire comme toi, tu es sur que ça marche?

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Par défaut
    Résolu !

    J'ai ajouté ce code au début :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Container c = fr.getContentPane();
    c.setBackground(Color.darkGray);
    JDesktopPane desktop = new JDesktopPane();
    desktop.setBackground(Color.darkGray);
    Je déclare une fenêtre interne ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    final JInternalFrame fr = new JInternalFrame("Nom_de_la_fenêtre", true, true, true, true);
    Et je l'appelle dans le corp de la fonction actionPerformed ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fr.setVisible(true);
    Merci à vous !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/03/2007, 21h00
  2. [WD10] Fenêtres internes
    Par Louis Griffont dans le forum WinDev
    Réponses: 2
    Dernier message: 21/02/2007, 15h32
  3. [WD9] Changer le contenu d'une fenêtre interne
    Par oz80 dans le forum WinDev
    Réponses: 2
    Dernier message: 15/12/2005, 15h02
  4. [WD9] Fenêtre interne
    Par oz80 dans le forum WinDev
    Réponses: 1
    Dernier message: 14/12/2005, 10h48
  5. [swing] fenêtre interne
    Par Satch dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 21/07/2004, 20h33

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