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 :

[débutant]avoir un design simplifier et sobre


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 584
    Par défaut [débutant]avoir un design simplifier et sobre
    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

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    C'est juste une histoire de layout, pour l'instant tu utilises pour ton PanelGlobal un orderLayout qui lui ne redimensionne que le composant qui se trouve en son centre...

    Dans ton cas tu devrais plutôt utiliser un GridLayout à une colonne et deux lignes qui permet à tes composants de se redimensionner de la même façon

  3. #3
    Membre éclairé Avatar de pingoui
    Homme Profil pro
    Activité professionnelle sans liens avec le developpement
    Inscrit en
    Juillet 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Activité professionnelle sans liens avec le developpement
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2004
    Messages : 584
    Par défaut
    j'ai fait un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    panelGlobal.setLayout(new GridLayout(2,1));
    mais le résultat reste inchangé....

    Est-ce un problème avec mon JDesktopPane?

  4. #4
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Citation Envoyé par pingoui
    Le but c'est d'avoir 2 TabbedPane l'un au dessus de l'autre dans un design sobre type ecplise
    Un JSplitPane horizontal contenant deux JTabbedPane, ça suffirait pas ?

    Sinon, ajouter des JPanels dans un JDesktopPane, je n'ai aucune idée de ce que ça peut donner, mais j'éviterais à ta place.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/04/2008, 22h35
  2. [débutant] avoir la description d'une table
    Par Christophe P. dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 09/10/2007, 15h54
  3. [débutant] avoir accès aux données de la base BCDI 3
    Par Valichou dans le forum Bases de données
    Réponses: 7
    Dernier message: 06/05/2004, 13h13
  4. Réponses: 3
    Dernier message: 09/01/2004, 14h37

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