<JAVA>JMenuBar dans JInteralFrame

<JAVA>JMenuBar dans JInteralFrame - Java - Programmation

Marsh Posté le 09-04-2003 à 23:51:58    

J'aimerai placer une JMenuBar dans une JInternalFrame, mais elle n'apparait pas.. :heink:  
Qqn peut-il m'aider ?
 

Code :
  1. import javax.swing.JEditorPane;
  2. import javax.swing.JInternalFrame;
  3. import javax.swing.*;
  4. import java.awt.event.*;
  5. import java.awt.*;
  6. import java.net.URL;
  7. public class MyInternalFrame extends JInternalFrame implements ActionListener {
  8.   /** nombre de frame ouvertes*/
  9.   static int openFrameCount = 0;
  10.   /** offset pour le placement des difféntes frames*/
  11.   static final int xOffset = 30, yOffset = 30;
  12.   /** Panneau pour le contenu d'un fichier*/
  13.   private JEditorPane jEditorPane;
  14.   /** Barres de défilement pour jEditorPane*/
  15.   private JScrollPane jScrollPane;
  16.   /** Barre de menu pour un fichier ouvert*/
  17.   private JMenuBar b;
  18.   /** Menu de la barre de menu pour un fichier ouvert*/
  19.   private JMenu fichier;
  20.   /** Item pour un fichier ouvert*/
  21.   private JMenuItem fermer, sauvegarder;
  22.   /** Le constructeur MyInternalFrame crée une fenêtre interne
  23.     @param titre le titre de la fenêtre
  24.     @param fich le nom du fichier à ouvrir
  25.     @param barreDeMenu ajoute ou non une barre de menu à la fenêtre interne  */
  26.   public MyInternalFrame(String titre, String fich, boolean barreDeMenu) {
  27.     super(titre,
  28.           true, //resizable
  29.           true, //closable
  30.           true, //maximizable
  31.           true);//iconifiable
  32.    
  33.     JDesktopPane desktop;
  34.      
  35.     //...Then set the window size or call pack...
  36.     setSize(700,500);
  37.    
  38.    if(barreDeMenu){
  39.       b=new JMenuBar();       setJMenuBar(b);
  40.       fichier=new JMenu();    b.add(fichier);
  41.       fermer=new JMenuItem("Fermer" );
  42.       fermer.addActionListener(this);   
  43.       fichier.add(fermer);
  44.       sauvegarder=new JMenuItem("Sauvegarder" );
  45.       sauvegarder.addActionListener(this);
  46.       fichier.add(sauvegarder);
  47.       desktop = new JDesktopPane();
  48.       this.getContentPane().add(desktop);       
  49.     }
  50.  
  51.     URL url = null;
  52.     try {url = new URL("file://" + fich);}
  53.     catch (java.net.MalformedURLException ex)  {}
  54.    
  55.     try {jEditorPane = new JEditorPane(url);}
  56.     catch (java.io.IOException e){
  57.       System.out.println("Impossible d'ouvrir le fichier " + url);
  58.     }
  59.     jScrollPane = new JScrollPane(jEditorPane);
  60.     this.getContentPane().add(jScrollPane);
  61.     //Set the window's location.
  62.     openFrameCount++;
  63.     setLocation(xOffset*openFrameCount, yOffset*openFrameCount);
  64.   }
  65.   public StringBuffer getText(){
  66.     StringBuffer fichier=new StringBuffer(jEditorPane.getText());
  67.     return(fichier);
  68.   }
  69.   /** La fonction actionPerformed gère les évènements sur la fenêtre de l'application.
  70.     @param e ActionEvent  */
  71.   public void actionPerformed(ActionEvent e) {
  72.   }
  73. }


 
 
et
 

Code :
  1. import java.awt.*;
  2. import javax.swing.*;
  3. import java.awt.event.*;
  4. import java.util.*;
  5. class Interface extends JFrame implements ActionListener{
  6.   /** Le panneau principal de l'application*/
  7.   final JDesktopPane desktop;
  8.   /** La barre de menu*/
  9.   private JMenuBar b;
  10.   /** Menu de la barre de menu*/
  11.   private JMenu fichier, legende, propos;
  12.   /** Un Item du menu Fichier*/
  13.   private JMenuItem ouvrir, analyser, quitter;
  14.   /** Un Item du menu Légende*/
  15.   private JMenuItem boiteDeLegende;
  16.   /** Un Item du menu ? */
  17.   private JMenuItem aPropos;
  18.   /** Le sélecteur de fichier*/
  19.   private JFileChooser fc;
  20.   /** L'élément à onglet pour l'analyse des fichiers*/
  21.   private JTabbedPane jTabbedPane;
  22.   /** Le panneau défilant pour les fichiers ouverts*/
  23.   private JScrollPane jScrollPane;
  24.   /** Contenu du fichier ouvert*/
  25.   private JTextArea jTextArea;
  26.   /** objet qui gère les évènements selon le choix dans le menu*/
  27.   private Object menuChoisi;
  28.   /** Pour une analyse de fichier*/
  29.   private Analyse analyse;
  30.   /** Le constructeur Interface() crée l'interface de l'application  */
  31.   public Interface(){
  32.     setTitle("Projet ALAO n°1" );
  33.     desktop=new JDesktopPane();
  34.     this.setContentPane(desktop);
  35.     desktop.setPreferredSize(new Dimension(800,600));
  36.    
  37.     b=new JMenuBar();                   setJMenuBar(b);
  38.     fichier=new JMenu("Fichier" );       fichier.setMnemonic('F');
  39.     b.add(fichier);
  40.     ouvrir=new JMenuItem("Ouvrir" );     ouvrir.setMnemonic('O');
  41.     ouvrir.addActionListener(this);
  42.     fichier.add(ouvrir);
  43.     analyser=new JMenuItem("Analyser" ); analyser.setMnemonic('A');
  44.     analyser.addActionListener(this);   fichier.add(analyser);
  45.     quitter=new JMenuItem("Quitter" );   quitter.setMnemonic('Q');
  46.     quitter.addActionListener(this);    fichier.add(quitter);
  47.    
  48.     legende=new JMenu("Légende" );       legende.setMnemonic('L');
  49.     b.add(legende);
  50.    
  51.     boiteDeLegende=new JMenuItem("Boite de légende" );   boiteDeLegende.setMnemonic('B');
  52.     legende.add(boiteDeLegende);
  53.    
  54.     propos=new JMenu("?" );
  55.     propos.setMnemonic('?');
  56.     b.add(propos);
  57.     aPropos=new JMenuItem("A propos..." );
  58.     aPropos.setMnemonic('A');
  59.     propos.add(aPropos);
  60.    
  61.     WindowListener ei = new WindowAdapter() {
  62.       /** La fonction windowClosing gère la sortie de l'application lorsqu'on ferme la fenêtre
  63.           @param e WindowEvent      */
  64.       public void windowClosing(WindowEvent e) {
  65.           System.exit(0);
  66.       }
  67.     };
  68.    
  69.     addWindowListener(ei);
  70.     this.pack();
  71.     this.show();
  72.   }
  73.   /** La fonction actionPerformed gère les évènements sur la fenêtre de l'application.
  74.       @param e ActionEvent  */
  75.   public void actionPerformed(ActionEvent e) {
  76.     menuChoisi = e.getSource();
  77.     if (menuChoisi == quitter){
  78.         // traitements     
  79.     }else if(menuChoisi==analyser){
  80.         // traitements
  81.     }else if(menuChoisi==ouvrir){     
  82.       fc=new JFileChooser("." );
  83.       fc.setDialogTitle("Ouvrir un fichier" );
  84.       int returnVal = fc.showOpenDialog(null);
  85.       if (returnVal == JFileChooser.APPROVE_OPTION) {
  86.         MyInternalFrame myInternalFrame=new MyInternalFrame(fc.getSelectedFile().getName(),fc.getSelectedFile().toString(),true);
  87.         myInternalFrame.setVisible(true);
  88.         desktop.add(myInternalFrame);                 
  89.       }
  90.     }
  91.   }   
  92. }


Message édité par nibbles1 le 10-04-2003 à 00:02:31

---------------
JeanBeulz, chercheur coincheur
Reply

Marsh Posté le 09-04-2003 à 23:51:58   

Reply

Marsh Posté le 09-04-2003 à 23:52:33    

Nibbles1 a écrit :

J'aimerai placer une JMenuBar dans une JInternalFrame, mais elle n'apparait pas.. :heink:  
Qqn peut-il m'aider ?


 
oui


Message édité par darklord le 09-04-2003 à 23:52:47

---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 09-04-2003 à 23:55:38    


 
 :wahoo: merci, c'est sympa :whistle:


---------------
JeanBeulz, chercheur coincheur
Reply

Marsh Posté le 10-04-2003 à 00:04:38    

petite question idiote que je me pose... le pb n'est quand même pas du à l'absence de traitements correspondant aux écouteurs sur "Fermer" et "Quitter" ?
 

Code :
  1. fermer=new JMenuItem("Fermer" );
  2. fermer.addActionListener(this);
  3. fichier.add(fermer);


 
et
 

Code :
  1. public void actionPerformed(ActionEvent e) {
  2. }


Message édité par nibbles1 le 10-04-2003 à 00:05:05

---------------
JeanBeulz, chercheur coincheur
Reply

Marsh Posté le 10-04-2003 à 08:25:05    

Nibbles1 a écrit :

petite question idiote que je me pose... le pb n'est quand même pas du à l'absence de traitements correspondant aux écouteurs sur "Fermer" et "Quitter" ?


 
non
(enfin a priori, des fois y a des choses qui surprennent  :bounce: )

Reply

Marsh Posté le 10-04-2003 à 09:52:46    


 :heink:


---------------
get amaroK plugin
Reply

Marsh Posté le 10-04-2003 à 12:01:12    

en fait si on peut ! mais je sais pas comment
c un projet à faire (pour demain bien sûr, c tjs la veille que les profs donnent les projets :D), et sur l'exemple (.jar), il y a bien un JMenuBar dans un JInternalFrame... :heink:


---------------
JeanBeulz, chercheur coincheur
Reply

Marsh Posté le 10-04-2003 à 12:38:36    

ui ui, on peut, mais le probleme ne vient pas de l'abscence du traitement des evenements :p  
 
T'as tente des truc du genre setVisible(true) sur ta JMenuBar ? je vais voir ca plus tard sinon, parce que je vais en avoir besoin bientot des internal frames  :bounce:

Reply

Marsh Posté le 10-04-2003 à 12:49:31    

Tu peux essayer cette implementation de MyInternalFrame pour voir ? chez moi ca marche, je vois mes deux menus, donc il y a un autre probleme chez toi
 
 

Code :
  1. import javax.swing.JInternalFrame;
  2. import javax.swing.JMenuBar;
  3. import javax.swing.JMenu;
  4. public class MyInternalFrame extends JInternalFrame {
  5.     public MyInternalFrame() {
  6.         super("Oooops", true, true, true, true);       
  7.  JMenuBar b=new JMenuBar();
  8.  b.add(new JMenu("toto" ));
  9.  b.add(new JMenu("tata" ));
  10.  setJMenuBar(b);
  11.         setSize(300,300);
  12.     }
  13. }

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed