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 :

Problème compilation Eclipse


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 16
    Par défaut Problème d'exception dans un JPanel Editable
    Bonsoir à tous, je suis tout nouveau.
    Je réalise une licence informatique, et je bute sur un problème en JAVA.

    Je réalise un programme avec une menuBar, contenant des Items. J'ouvre biensur automatiquement dessous un JPanel vierge.

    J'aimerais, suite à un clic sur un menuItem. Pouvoir faire apparaitre un
    du texte et des boutons dans mon JPanel vierge.

    J'ai une premiere classe :
    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
     
     
    import java.awt.*;
    import java.awt.event.*;
     
    import javax.swing.JLabel;
    import javax.swing.JMenu;
    import javax.swing.JMenuItem;
    import javax.swing.JMenuBar;
    import javax.swing.JPanel;
    import javax.swing.JTextArea;
    import javax.swing.JScrollPane;
    import javax.swing.JFrame;
    import javax.swing.JTextField;
     
    public class Menu {
        JTextArea output;
        JScrollPane scrollPane;
        JTextField entry;
     
        public JMenuBar createMenuBar() {
            JMenuBar menuBar;
            JMenu fichier, outils, aide;
            JMenuItem nr, supr, aff, trpp, edit, help, trelais, prelais, exit;
     
            menuBar = new JMenuBar();
     
            fichier = new JMenu("Fichier");
            menuBar.add(fichier);
     
            nr = new JMenuItem("Nouveau Relais", KeyEvent.VK_T);
            fichier.add(nr);
            supr = new JMenuItem("Supprimer Relais", KeyEvent.VK_T);
            fichier.add(supr);
            fichier.addSeparator();
            exit = new JMenuItem("Quitter l'application", KeyEvent.VK_T);
            fichier.add(exit);
     
            outils = new JMenu("Outils");
            menuBar.add(outils);
     
            edit = new JMenuItem("Editer un Relais", KeyEvent.VK_T);
            outils.add(edit);
            aff = new JMenuItem("Afficher les Relais", KeyEvent.VK_T);
            outils.add(aff);
            outils.addSeparator();
     
            trpp = new JMenu("Trouver Relais");
            trelais = new JMenuItem("Le plus proche");
            trpp.add(trelais);
            prelais = new JMenuItem("Dans un perimètre", KeyEvent.VK_T);
            trpp.add(prelais);
            outils.add(trpp);
     
            aide = new JMenu("?");
            menuBar.add(aide);
     
            help = new JMenuItem("Aide", KeyEvent.VK_T);
            aide.add(help);
     
    		Moteur moteur = new Moteur(null);
    		nr.addActionListener(moteur);
    		supr.addActionListener(moteur);
    		aff.addActionListener(moteur);
    		help.addActionListener(moteur);
    		exit.addActionListener(moteur);
    		trelais.addActionListener(moteur);
    		prelais.addActionListener(moteur);
    		edit.addActionListener(moteur);
     
            return menuBar;
        }
     
        public Container createContentPane() {
     
            JPanel contentPane = new JPanel(new BorderLayout());
            contentPane.setOpaque(true);
            output = new JTextArea(5, 30);
            output.setEditable(false);
            scrollPane = new JScrollPane(output);
     
            contentPane.add(scrollPane, BorderLayout.CENTER);
     
            return contentPane;
        }
     
     
        private static void creation() {
     
            JFrame frame = new JFrame("Bienvenue sur l'Interface des Relais de France");
            JFrame.setDefaultLookAndFeelDecorated(true);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
            Menu demo = new Menu();
            frame.setJMenuBar(demo.createMenuBar());
     
            frame.setContentPane(demo.createContentPane());
     
            frame.setSize(400, 350);
            frame.setVisible(true);
        }
     
        public static void main(String[] args) {
     
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    creation();
                }
            });
        }
    J'ai créer une seconde class Moteur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class Moteur implements ActionListener{
    	Menu monMenu;
     
     
    	public Moteur(Menu m) {
    		monMenu = m;
    	}
    		public void actionPerformed(ActionEvent evenement) {
     
    			switch (evenement.getActionCommand().charAt(0)) {
    			case 'N':
    Suite au clic, pour savoir quel choix l'utilisateur à choisi, j'utilise la premiere lettre du menuItem correspondant.

    Mais voila, maintenant j'aimerais pouvoir editer le JPanel pour avoir du text et 2 icones, et je ne sais pas du tout comment.

    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Bonjour, un JPanel n'est pas un composant éditable. C'est un conteneur de composants qui eux peuvent être éditables, par exemple un JTextField ou JTextArea.

    Pour t'aider à choisir tes composants, et savoir comment les coder, je te conseille de regarder cet index de composants Swing.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 16
    Par défaut
    En gros, quand je créer mon JPanel, je rajoute tout ce que je voudrais afficher plutard. Je fais en sorte que ce ne soit pas visible des le debut. Je met le setVisible dans le moteur ?

  4. #4
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Non, pour gérer l'affichage de tel ou tel JPanel (qui contiendra tes composants), tu peux les mettre dans un CardLayout. Et ensuite sur le CardLayout, tu as juste à indiquer le JPanel que tu souhaites afficher.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 16
    Par défaut
    Sinon, j'ai penser au fait qu'a chaque clic, la fenetre se ferme et se reouvre instantenement ( changement visible que sur vista ). Comment faire fermer une fenetre ?

  6. #6
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Sur un composant, tu as toujours la méthode setVisible(boolean).

    Sinon pour fermer une fenêtre, il faut utiliser la méthode dispose()

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 16
    Par défaut
    merci pour ces conseils. Je vais essayer d'avancer dans mon programme. Je repondrais à ce topic en cas de nouveau problème.

Discussions similaires

  1. Problème compilation Eclipse C++ sous Mac OSX
    Par BobOctopus dans le forum Eclipse C & C++
    Réponses: 1
    Dernier message: 26/01/2012, 10h28
  2. Problème compilation Eclipse
    Par dark0502 dans le forum Eclipse C & C++
    Réponses: 0
    Dernier message: 04/10/2009, 11h53
  3. Problème compilation Eclipse + GWT
    Par H3bus dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 27/11/2008, 17h35
  4. Problème compilation eclipse
    Par flatron123 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 06/03/2008, 19h56
  5. problème compilation projet eclipse C++ opengl
    Par youp_db dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/04/2007, 10h34

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