Stap 10: Deelvenster indelingen
Deze sectie heeft mijn JPanel-indelingen, die som voor de indeling van het hoofdscherm in zijn geheel.
In de eerste afbeelding:
-De JPanel "buttonHolder" is aangewezen als locatie van de drie belangrijkste knoppen ("random", "reset" en "clear"). Het heeft een GridLayout met 3 rijen, 1 kolom en 10 pixels afstand tussen rijen en kolommen. Wanneer knoppen worden toegevoegd aan de "buttonHolder", neemt elke men een rij omhoog. De achtergrond is ingesteld op "muur" overeenkomt met de achtergrond van de paarse.
-De JPanel "seasonPanel" houdt de seizoen checkboxes en bijbehorende label. Een grid lay-out met twee rijen en een kolom instellen De bovenste rij houdt het JPanel "labelHolder", die op zijn beurt het JLabel houdt "Pick afleveringen van seizoen:". Ik de achtergrond van het panel van "labelHolder" en de "seasonPanel" aan de "muur" overeenkomt met de belangrijkste van de paarse achtergrond instellen, en ik het paneel van de checkbox "selectievakjes" toegevoegd aan de onderste rij van "seasonPanel".
-De JPanel "textHolder" houdt simpelweg het hoofdtekstgebied. Omdat de scrollbar "scroll" het tekstgebied bekleedt, is het overigens "Ga" naar het paneel "textHolder" in plaats van "tekst" toe te voegen. Net als de andere deelvensters, wordt de achtergrond van de "textHolder" paars "muur" kleur instelt.
In het tweede beeld, hebben we grotere panelen. Als een veralgemening stel ik de achtergrondkleur van alle panelen kunnen "muur" de paarse achtergrond van de andere panelen:
-De JPanel "top" vertegenwoordigt de top van het weergavevenster en het houdt het deelvenster tekst gebied "textHolder" alleen.
-De JPanel "onder" de onderkant voorstelt de helft van het venster Eigenschappen voor beeldscherm, met uitzondering van de aankruisvakken seizoen. Het is opgezet met een grid lay-out (1 rij, drie kolommen). De JPanels "ph1" en "ph2" zijn slechts tijdelijke aanduiding panelen voor de linker en rechter kolommen van "bodem". De middelste kolom wordt ingenomen door "buttonHolder", het paneel van vroeger, waarin de drie knoppen.
-Ik instellen de opmaak van dit object EpisodePicker als een BorderLayout, zodat ik dingen op de randen gemakkelijk plaatsen kan.
-De JPanel "canvas" vertegenwoordigt alle het hoofdscherm met uitzondering van hettoezichtpanel checkbox seizoen. Doek als een raster met 2 rijen en 1 kolom instellen De bovenste rij bevat het "top"-panel en de onderste rij houdt de "onderkant".
-Ten slotte overigens "canvas" naar het midden van dit object EpisodePicker, en ik "seasonPanel" toevoegen aan de onderkant (met behulp van de BorderLayout). Ik deed dit zodat "seasonPanel" zou kunnen over de gehele bodem van het scherm strekken terwijl de drie knoppen zou ingaan op het midden derde.
Oef! Nu dat alle GUI-setup en lay-out is uit de weg, kunnen we kijken naar de backend vitale delen van het programma die het opslaan en genereren van willekeurige aflevering suggesties.