From 6c522f9cfec4488d9ba2fd90dced98e747be9714 Mon Sep 17 00:00:00 2001 From: PaoloPinkel <eude365sup@outlook.com> Date: Thu, 5 Dec 2019 10:11:55 +0100 Subject: [PATCH] =?UTF-8?q?ChkBoxGridPane=20neue=20Klasse=20zum=20erzeugen?= =?UTF-8?q?=20eines=20GridPane,=20welches=20mit=20Checkboxen=20gef=C3=BCll?= =?UTF-8?q?t=20ist.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../projekt/enigma/view/ChkBoxGridPane.java | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/main/java/projekt/enigma/view/ChkBoxGridPane.java diff --git a/src/main/java/projekt/enigma/view/ChkBoxGridPane.java b/src/main/java/projekt/enigma/view/ChkBoxGridPane.java new file mode 100644 index 0000000..bd47f66 --- /dev/null +++ b/src/main/java/projekt/enigma/view/ChkBoxGridPane.java @@ -0,0 +1,74 @@ +package projekt.enigma.view; + +import javafx.scene.control.CheckBox; +import javafx.scene.control.ContentDisplay; +import javafx.scene.control.Label; +import javafx.scene.layout.GridPane; + +public class ChkBoxGridPane extends GridPane { + /*private static JPanel panel = new JPanel();*/ + private static CheckBox[] checkbox; + private static Character[] alphabet;/* = {'A','B','C','D'};*/ + private static int charSize; + + public ChkBoxGridPane(Character[] alphabet) { + this.charSize = alphabet.length; + this.alphabet = alphabet; + initializeComponents(); + } + + /** + * Es wird ein GridPane erzeugt, das zwei Spalten und abhängig von der Länge des + * Arrays (Character[] alphabet) Reihen hat. Das Label der CheckBoxen soll + * abhängig von deren Index links bzw. recht erzeugt werden + */ + private void initializeComponents() { + this.checkbox = new CheckBox[charSize]; + /* => bei ungerader Anzahl Buchstaben + *CheckBox und deren Label erzeugen, bei geraden Index Zahlen + * das Label rechts setzen bei ungeraden links + */ + if (!(charSize % 2 == 0)) { + for (int i = 0; i < charSize; i++) { + Label lb = new Label(alphabet[i] + ""); + lb.setGraphic(checkbox[i] = new CheckBox()); + if(i%2==0)lb.setContentDisplay(ContentDisplay.RIGHT); + else if(!(i%2==0)) lb.setContentDisplay(ContentDisplay.LEFT); + this.add(checkbox[i],2,(charSize + 1) / 2); + //if (i==0)checkbox[0].setSelected(true); + } + + } + /* => bei gerader Anzahl Buchstaben + *CheckBox und deren Label erzeugen, bei geraden Index Zahlen + * das Label rechts setzen bei ungeraden links + */ + else { + for (int i = 0; i < charSize; i++) { + Label lb = new Label(alphabet[i] + ""); + lb.setGraphic(checkbox[i] = new CheckBox()); + if(i%2==0)lb.setContentDisplay(ContentDisplay.RIGHT); + else if(!(i%2==0)) lb.setContentDisplay(ContentDisplay.LEFT); + this.add(checkbox[i],2,(charSize / 2)); + } + } + this.setVisible(true); + } + + /** + * Prüft welche CheckBox aus gewählt und gibt deren + * Index zurück + * @return + */ + private Integer isCheckedChkBoxIndex() { + for (int i = 0; i < charSize; i++) { + if (checkbox[i].isSelected()) { + return i; + } else { + return null; + } + } + return null; + } +} + -- GitLab