Package gui

Source Code of gui.FrameWithMenu

package gui;

import java.awt.BorderLayout; 

import javax.swing.*;
import javax.swing.border.*;

import annotation.Menu;

import java.util.*;

import chargementDynamique.Repository;

import java.awt.event.*;
import java.io.File;
import java.lang.reflect.Method;
import java.util.List;

public class FrameWithMenu extends JFrame {
   private JPanel   contentPane; 
   private JMenuBar menuBarre;
   private JMenu    plugin;
  
   // Construceur de la classe
  
   public FrameWithMenu(){   
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
     setBounds(100, 100, 450, 300)
     contentPane = new JPanel()
     contentPane.setBorder(new EmptyBorder(5, 5, 5, 5))
     contentPane.setLayout(new BorderLayout(0, 0))
     
     menuBarre = new JMenuBar();
     plugin    = new JMenu("plugin");
     menuBarre.add(plugin);
    
    
     setContentPane(contentPane);
     setVisible(true);
     try {
    buildMenu();
    setJMenuBar(menuBarre);
    } catch (ClassNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
   
   } 
 
 
@SuppressWarnings("serial"
void buildMenu() throws ClassNotFoundException
   File f = new File("D:\\workspace\\AnnotationPlugin\\bin\\");
    if (!f.exists()) {
      System.err.println(f+" does not exist");
      System.exit(1);
    }
    Repository<Object> rep = new Repository<Object>(f, Object.class);
    List<Object> l = rep.load();
    System.out.println(l.size()+" classe(s) loaded");
    Iterator<Object> i=l.iterator();
    while(i.hasNext())
    {
      //Class c = Class.forName(((Class)i.next()).getName());
     
      //try {
        Class c= (Class)(i.next());
        //c = (Class) c.newInstance();
       
        Method[] m = c.getDeclaredMethods();
        for(int j=0; j<m.length ; j++)
        {
          System.out.println("Methode : "+m[j].getName());
          Menu menu = m[j].getAnnotation(Menu.class);
          if(menu != null)
          {
            JMenuItem item;
            if(menu.libelle() == null)
            {
              item = new JMenuItem(m[j].getName());
            }
            else
            {
              item = new JMenuItem(menu.libelle());
            }
            plugin.add(item);
            item.addActionListener(new ActionListener() {
             
              @Override
              public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                JOptionPane.showMessageDialog(null, "plugin charg�");
              }
            });
           
          }
        }
       
       
       
      /*} /*catch (InstantiationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }*/
    }
   
   
 
public static void main(String[] args) { 
  new FrameWithMenu()
TOP

Related Classes of gui.FrameWithMenu

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.