Partage
  • Partager sur Facebook
  • Partager sur Twitter

Positionner correctement des composant avec layout

Sujet résolu
    28 mars 2020 à 16:21:38

    Bonjour,

    J'essaye de creer un emploi du temps en utilisant uniquement des layouts (ici border et box)

    Mais je n'arrive pas à afficher les heures correctement

    Voici mon code:

    celle qui affiche l'emploi du temps

    	private JPanel afficherEmploiDuTemps() {
    		semaineSelectionner = Temps.getSemaine();
    		tableauCreneau = ressource.getSemaineEDT(Temps.getAnnee(), Temps.getSemaine());
    		JPanel panelPrincipal = new JPanel();		
    		panelPrincipal.setLayout(new BorderLayout());
    		
    
    		panelPrincipal.add(afficheHeure(tableauCreneau[0].length), BorderLayout.WEST);
    		
    		JPanel panel = new JPanel();		
    		panel.setLayout(new BorderLayout());
    
    		panel.add(panelCompletJourDeLasemaine, BorderLayout.NORTH);
    		panelCompletJourDeLasemaine.setLayout(new BorderLayout());
    		afficheJourDeLaSemaine();
    
    		afficherListeSemaine();
    		
    		panel.add(panelCompletSemaineCreneau, BorderLayout.CENTER);
    		panelCompletSemaineCreneau.setLayout(new BorderLayout());
    		afficheCreneauDeLaSemaine();
    		panelPrincipal.add(panel);
    		return panelPrincipal;
    	}
    

    et celle qui affiche les heures:

    	private JPanel afficheHeure(int nbHeure) {
    		JPanel panel = new JPanel();
    		nbHeure = (nbHeure+2);
    		panel.setLayout(new GridLayout(nbHeure,0));
    		for (int i=0; i<nbHeure; i++) {
    			panel.add(creerLabelInterface(Integer.toString(i+8)+"h"));
    		}
    		return panel;
    	}
    

    Merci pour votre aide :)

    • Partager sur Facebook
    • Partager sur Twitter

    On n'aime pas ce qu'on ne comprend pas 

      29 mars 2020 à 19:29:14

      UP :D
      • Partager sur Facebook
      • Partager sur Twitter

      On n'aime pas ce qu'on ne comprend pas 

        29 mars 2020 à 20:02:41

        Si GridLayout l'affaire ne fait pas, avec GridBagLayout t'amuser tu vas.

        https://docs.oracle.com/javase/tutorial/uiswing/layout/gridbag.html

        -
        Edité par michelbillaud 29 mars 2020 à 20:05:09

        • Partager sur Facebook
        • Partager sur Twitter
          29 mars 2020 à 20:23:44

          Je vais essayer merci pour l'info

          • Partager sur Facebook
          • Partager sur Twitter

          On n'aime pas ce qu'on ne comprend pas 

            30 mars 2020 à 0:32:27

            Houlalala c'est difficile 

            Tu peux m'aider un peu ? Car j'arrive à ce resultat :

            J'ai uniquement modifier afficheEmploiDuTemps

            	private JPanel afficherEmploiDuTemps() {
            		semaineSelectionner = Temps.getSemaine();
            		tableauCreneau = ressource.getSemaineEDT(Temps.getAnnee(), Temps.getSemaine());
            		
            		JPanel panel = new JPanel();
            		panel.setLayout(new GridBagLayout());
            		GridBagConstraints gbc = new GridBagConstraints();
            		
            		gbc.gridx = gbc.gridy = 0;
            		panel.add(afficheHeure(), gbc);
            		
            		gbc.ipady = 0;
            		gbc.gridx = 1;
            		gbc.gridy = 0;
            		panel.add(panelCompletJourDeLasemaine, gbc);
            		panelCompletJourDeLasemaine.setLayout(new BorderLayout());
            		afficheJourDeLaSemaine();
            	
            		gbc.gridx = 1;
            		gbc.gridy = 1;
            		panel.add(panelCompletSemaineCreneau, gbc);
            		panelCompletSemaineCreneau.setLayout(new BorderLayout());
            		afficheCreneauDeLaSemaine();
            
            		gbc.gridx = 1;
            		gbc.gridy = 2;
            		panel.add(panelCompletListeSemaine, gbc);
            		afficherListeSemaine();
            		
            		return panel;
            	}
            

            Il y a 4 panel à afficher, celui des heures (à gauche), celui des jours de la semaine(en haut), le planning(au centre), et les semaines(en bas)

            Le but est d'arriver à ce resultat:



            • Partager sur Facebook
            • Partager sur Twitter

            On n'aime pas ce qu'on ne comprend pas 

              30 mars 2020 à 6:46:14

              Bonjour,

              Ton schema n'est pas bon. Les heures débordent sur les jours et les semaines

              Je crois que tu essayes d'afficher les heures en face des traits. C'est compliqué et le résultat risque d'être très approximatif.

              Une autre solution serait de mettre des plages horaires en face des lignes (8h-9h, etc)

              • Partager sur Facebook
              • Partager sur Twitter
                30 mars 2020 à 8:32:44

                Regarde le positionnement d'abord, tu verras les largeurs et hauteurs après.

                Les heures (colonne de gauche) vont sur les mêmes lignes que les pavés d'emploi du temps. Et les jours dans les colonnes.

                Essaie de dessiner une maquette avec un tableur. Tu coderas en java apres

                -
                Edité par michelbillaud 30 mars 2020 à 8:36:26

                • Partager sur Facebook
                • Partager sur Twitter
                  30 mars 2020 à 13:48:18

                  brubru777 a écrit:

                  Bonjour,

                  Ton schema n'est pas bon. Les heures débordent sur les jours et les semaines

                  Je crois que tu essayes d'afficher les heures en face des traits. C'est compliqué et le résultat risque d'être très approximatif.

                  Une autre solution serait de mettre des plages horaires en face des lignes (8h-9h, etc)


                  En effet, j'essaye de mettre les heures sur les lignes. Et c'est normal que ca déborde, car 8h sera entre les jours et le plannig et 17h entre le planning et les semaines

                  l'idée pour la disposition des jour/heure/planning est d'arrivé à un truc comme ca: 

                  -
                  Edité par Smooki 30 mars 2020 à 17:29:42

                  • Partager sur Facebook
                  • Partager sur Twitter

                  On n'aime pas ce qu'on ne comprend pas 

                    30 mars 2020 à 18:47:56

                    Ca rentre dans une grille.

                    en mettant les heures en haut à droite de la case, ça le fait très bien. Ca intéresse qui que ça soit en face du trait ?

                    > 8h sera entre les jours et le plannig et 17h entre le planning et les semaines

                    Désolé, comprends pas la phrase.

                     

                    -
                    Edité par michelbillaud 30 mars 2020 à 18:51:52

                    • Partager sur Facebook
                    • Partager sur Twitter
                      30 mars 2020 à 19:27:18

                      Effectivement je peux faire comme ca, mais je suis un maniaque :lol:

                      8h sera entre les jours et le planning et 17h entre le planning et les semaines

                      Je volais dire que 8h sera positionner entre le le panel des jours et le panel du planning

                      Je volais dire que 17h sera positionner entre le le panel du planning et le panel des semaines

                      • Partager sur Facebook
                      • Partager sur Twitter

                      On n'aime pas ce qu'on ne comprend pas 

                      Positionner correctement des composant avec layout

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown