Étape 10 : Panneau Layouts
Cette section a mes mises en page de JPanel, somme d’organiser la mise en page de l’affichage principal dans son intégralité.
Dans la première image :
-Le JPanel « buttonHolder » est désigné pour tenir les trois boutons principaux (« aléatoires », « reset » et « clear »). Il a un GridLayout avec 3 lignes, 1 colonne et à 10 pixels, espacement entre les lignes et les colonnes. Lorsque des boutons sont ajoutés à la « buttonHolder », chacun d’eux occupe une ligne. L’arrière-plan est défini sur « mur » pour faire correspondre le fond violet.
-Le JPanel « seasonPanel » contient les cases à cocher de saison et une étiquette associée. J’ai mis une présentation grille avec deux lignes et une colonne. La ligne du haut contient le JPanel « bague », qui contient à son tour le JLabel "Pick des épisodes de la saison:". J’ai mis le fond du panneau « bague » et le "seasonPanel" au « mur » pour faire correspondre le principal fond violet, et j’ai ajouté le panneau de la case à cocher « cases » à la deuxième rangée de « seasonPanel ».
-Le « textHolder » de JPanel détient tout simplement la zone de texte principale. Depuis la barre de défilement « scroll » détient la zone de texte, j’ai ajouter « scroll » vers le panneau « textHolder » au lieu d’ajouter le "texte". Comme les autres panneaux, l’arrière-plan de « textHolder » obtient défini sur la couleur pourpre « mur ».
Dans la seconde image, nous avons de grands panneaux. Comme une généralisation, j’ai mis la couleur d’arrière-plan de tous les panneaux de « mur » pour faire correspondre le fond violet des autres panneaux :
-Le JPanel « top » représente le haut de la fenêtre d’affichage, et il tient le panneau de zone de texte « textHolder » uniquement.
-Le JPanel « bas » représente la partie inférieure la moitié de la fenêtre d’affichage, à l’exception des cases à cocher de la saison. Il est mis en place avec une présentation de la grille (1 rang, trois colonnes). Les JPanels « ph1 » et « ph2 » sont juste des panneaux d’espace réservé pour les colonnes gauche et droite du « bas ». La colonne du milieu est reprise par « buttonHolder », le panneau de plus tôt, qui détient les trois boutons.
-J’ai mis à la disposition de cet objet EpisodePicker d’être un BorderLayout alors je peux placer facilement des choses sur les bords.
-La « toile » de JPanel représente l’ensemble de l’écran principal à l’exception du panneau de case à cocher de saison. J’ai mis la toile pour être une grille avec 2 lignes et 1 colonne. La rangée supérieure contient le panneau « supérieur » et la rangée du bas contient le panneau « bas ».
-Enfin, j’ai ajouter « toile » au centre de cet objet de EpisodePicker, et j’ai ajouter « seasonPanel » vers le bas (en utilisant le BorderLayout). Je l’ai fait pour que « seasonPanel » pourrait s’étendre sur tout le fond de l’écran alors que les trois boutons seraient simplement prendre le milieu troisième.
Ouf ! Maintenant que toutes les configuration GUI et de la mise en page est à l’écart, nous pouvons regarder les éléments d’actifs du backend du programme qui stockent et génèrent des suggestions épisode aléatoire.