Du code vaut mieux de 100 000 discours
Ma JFrame contient 1 JPanel (PanelGlobal)
Ce panel Global contient 2 JPanels (HautFrame et BasFrame)
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
 
/** 
 * MaFrame.java 
 * La fenetre Principale de l'application. 
 */ 
public class MaFrame extends JFrame{ 
 
    /** --- Attributs statiques --- */ 
 
    /** L'instance de la fenetre elle meme */ 
    private static MaFrame maFrame;
 
    /* --- Attributs --- */ 
 
    /** Les panels*/
    private JPanel panelGlobal = new JPanel();    
 
    /** Le panel de la partie du bas. */ 
    private HautFrame hautFrame; 
 
    /** Le panel de la partie du haut. */ 
    private BasFrame basFrame;
 
    /** Le menu de la fenetre. */ 
    private MenuFenetre menuFenetre; 
 
    /* --- Constructors --- */ 
 
    /** 
     * Crée une nouvelle instance de la fenetre. 
     */ 
    private MaFrame(){ 
        super("DI manager"); 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        
    } 
 
    /* --- Accessors --- */ 
    public HautFrame getHautFrame(){return hautFrame;}
    public BasFrame getBasFrame(){return basFrame;}
 
 
    /* --- Methods statiques --- */ 
 
    /** 
     * Permet de récupérer la fenêtre, au premier appel crée celle-ci, sinon 
     * retourne elle-meme. 
     * @return La fenetre Principale : MaFrame. 
     */ 
    public static MaFrame getMaFrame() { 
        if (maFrame == null) { 
            maFrame = new MaFrame(); 
        } 
        return maFrame; 
    } 
 
    /** --- Methodes --- */ 
 
    /** 
     * Initialise les menu, le contenu de la fenetre, le timer... 
     */ 
    public void init(){ 
    	/* initialisation du Timer*/
    	new BoucleDeLecture();
    	/* initialisation du menu*/
        menuFenetre = new MenuFenetre(); 
        setJMenuBar(menuFenetre); //on insére les Menus 
        /*Initialisation du layout*/
        getContentPane().setLayout(new BorderLayout());
        panelGlobal.setLayout(new BorderLayout());
 
        Border raisedbevel = BorderFactory.createRaisedBevelBorder();
        Border loweredbevel = BorderFactory.createLoweredBevelBorder();      
        addComponentListener(new ComponentAdapter() { 
        	   public void componentResized(ComponentEvent e) { 
        	        resizeFrame(); 
        	   } 
        	});            
        JDesktopPane desktop = new JDesktopPane();
        desktop.setPreferredSize(new Dimension(800, 600)) ;
        desktop.setDesktopManager(new ImmobileDesktopManager());           
        desktop.setBackground(new Color(255,255,255));
 
        /*fenetre du haut*/
        hautFrame = new HautFrame();               
        desktop.add(hautFrame);
 
         /*fenetre du bas*/
         basFrame = new BasFrame();        
         desktop.add(basFrame);
 
         panelGlobal.add(desktop,BorderLayout.CENTER);        
         getContentPane().add(panelGlobal,BorderLayout.CENTER);
 
         /*barre d'état */
         JPanel barreEtat = new JPanel();
         barreEtat.setBorder(BorderFactory.createCompoundBorder(raisedbevel, loweredbevel));
         getContentPane().add(barreEtat,BorderLayout.PAGE_END);
         pack();
    }
 
    public void resizeFrame() { 
    	   int width =  panelGlobal.getSize().width; 
    	   int height =  panelGlobal.getSize().height;
 
    	   hautFrame.setSize(width,height/2);
    	   hautFrame.setLocation(0,0);
 
    	   basFrame.setSize(width,height/2);
    	   basFrame.setLocation(0,height/2);
    }   
}
un de mes panels (HautFrame)
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
 
public class HautFrame extends JPanel{
 
	   private JTabbedPane tabbedPaneHaut =new JTabbedPane();
	   private HashMap maHashMap = new HashMap();
	   private HashMap hashMap = new HashMap();
	   private DiTable tableau;
 
	   public HautFrame() {
		   super();
	       setLayout(new BorderLayout());
	       setBackground(new Color(255,255,255)); 
	        }); 
 
	       add (tabbedPaneHaut,BorderLayout.CENTER);// ajout du Tabbed Pane
	       setVisible(true);
	   }
		/**
                 * Méthode qui parmet d'ajouter un tabbedPane (Onglet)
                 * @param file
                 * @param nomFichierOuvert
                 */
	    public void ajoutTabbed(String file, String nomFichierOuvert){ 
	         tableau = new DiTable(file);//ajout du JTable	         
	         tabbedPaneHaut.addTab(nomFichierOuvert, tableau);
	   }
 
	}
1) lorsque je redimensionne ma JFrame les panels HautFrame et BasFrame ne suivent pas. avant les Jpanel j'utiliser des JIntenalFrame pour HautFrame et BasFrame et ça fonctionnait bien
2)Avez vous une idée pour simplifier mon ui? je trouve que j'ai beaucoup de chose imbriqué pour pas grand chose
Le but c'est d'avoir 2 TabbedPane l'un au dessus de l'autre dans un design sobre type ecplise


merci pour votre aide et vos conseils