public View23D() {
    this.setAlignment(Pos.CENTER);
    this.setPadding(new Insets(20));

    camera = new PerspectiveCamera();
    camera.setNearClip(0.1);
    camera.setFarClip(10000);
    camera.setTranslateX(0);
    camera.setTranslateY(0);
    camera.setTranslateZ(-500);

    sphere1 = createSphere(Color.BLUE);
    Tooltip.install(sphere1, new Tooltip("A Blue Sphere"));

    sphere2 = createSphere(Color.YELLOWGREEN);
    sphere2.setTranslateX(200);
    sphere2.setTranslateY(200);
    Tooltip.install(sphere2, new Tooltip("A Yellowgreen Sphere"));

    cylinder = createCylinder(Color.BLANCHEDALMOND);
    cylinder.setTranslateY(90);
    cylinder.setTranslateX(90);
    cylinder.setRotate(-45);
    Tooltip.install(cylinder, new Tooltip("A ??? Cylinder"));

    clickMe1 = new Button("Click Me!");
    clickMe1.setTranslateX(200);

    t3dobjects = new Group();

    t3dobjects.getChildren().addAll(sphere1, cylinder, sphere2, clickMe1);

    threeD = new SubScene(t3dobjects, 600, 600, true, SceneAntialiasing.BALANCED);
    t3dobjects.setTranslateX(200);
    t3dobjects.setTranslateY(200);

    topPane = new Pane();
    topPane.setPickOnBounds(false);

    clickMe2 = new Button("Click Me 2!");

    this.getChildren().addAll(threeD, topPane);
    // this.setAlignment(Pos.CENTER);
  }
  public Veld2Verkeerstechniek(
      LeerlingController llnCntrl, SchermController schermCtrl, EvaController evaCtrl) {
    evaController = evaCtrl;
    schermController = schermCtrl;
    llnController = llnCntrl;
    llnController.getLeerling().addView(this);
    hoogte = schermController.getHoogte();
    breedte = schermController.getBreedte();
    mainGP = new GridPane();

    // evaSelector
    eva = new EvaSelector(evaController);

    // labels
    kleur = new Button("Kleur kiezen");
    venster = new Button("Extra venster");

    kleur.setMinSize(120, 30);
    kleur.setMaxSize(120, 30);
    venster.setMinSize(120, 30);
    venster.setMaxSize(120, 30);

    kleur.setStyle(
        "-fx-border-color: black; -fx-border-width:1; -fx-border-style: solid; -fx-background-color: WHITE");
    kleur.setAlignment(Pos.CENTER);
    venster.setStyle(
        "-fx-border-color: black; -fx-border-width:1; -fx-border-style: solid; -fx-background-color: WHITE");
    venster.setAlignment(Pos.CENTER);

    kleur.setOnMouseClicked(
        new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent e) {
            selecteerKleur();
          }
        });
    venster.setOnMouseClicked(
        new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent e) {
            selecteerVenster();
          }
        });

    labels = new HBox();
    labels.setSpacing(15);
    labels.setTranslateY(-hoogte * 0.75);
    labels.setTranslateX(20);
    labels.getChildren().addAll(kleur, venster);

    // alle afbeeldingen
    // Links
    links = new GridPane();
    openbareWegImg =
        new Onderdeel("resource/Verkeerstechniek/openbareWeg", -140, 160, evaController);
    openbareWegImg.setOnMouseClicked(
        new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent e) {
            Veld2Verkeerstechniek.this.schermController.setScherm(
                MainApp.VELD2VERKEERSTECHNIEKPLAATS_ID);
          }
        });
    richtingaanwijzersImg =
        new Onderdeel("resource/Verkeerstechniek/richtingaanwijzers", 120, 140, evaController);
    richtingaanwijzersImg.setOnMouseClicked(
        new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent e) {
            Veld2Verkeerstechniek.this.schermController.setScherm(
                MainApp.VELD2VERKEERSTECHNIEKRICHTINGAANWIJZERS_ID);
          }
        });
    rechtsafImg = new Onderdeel("resource/Verkeerstechniek/rechtsaf", 220, 160, evaController);
    rechtsafImg.setOnMouseClicked(
        new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent e) {
            Veld2Verkeerstechniek.this.schermController.setScherm(
                MainApp.VELD2VERKEERSTECHNIEKRECHTSAF_ID);
          }
        });
    linksafImg = new Onderdeel("resource/Verkeerstechniek/linksaf", 120, 190, evaController);
    linksafImg.setOnMouseClicked(
        new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent e) {
            Veld2Verkeerstechniek.this.schermController.setScherm(
                MainApp.VELD2VERKEERSTECHNIEKLINKSAF_ID);
          }
        });
    kruisenImg = new Onderdeel("resource/Verkeerstechniek/kruisen", 60, 155, evaController);
    kruisenImg.setOnMouseClicked(
        new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent e) {
            Veld2Verkeerstechniek.this.schermController.setScherm(
                MainApp.VELD2VERKEERSTECHNIEKKRUISEN_ID);
          }
        });
    // Rechts
    rechts = new GridPane();
    voorrangImg = new Onderdeel("resource/Verkeerstechniek/voorrang", -140, 160, evaController);
    voorrangImg.setOnMouseClicked(
        new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent e) {
            Veld2Verkeerstechniek.this.schermController.setScherm(
                MainApp.VELD2VERKEERSTECHNIEKVOORRANG_ID);
          }
        });
    verkeerstekensImg =
        new Onderdeel("resource/Verkeerstechniek/verkeerstekens", -25, 140, evaController);
    verkeerstekensImg.setOnMouseClicked(
        new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent e) {
            Veld2Verkeerstechniek.this.schermController.setScherm(
                MainApp.VELD2VERKEERSTECHNIEKVERKEERSTEKENS_ID);
          }
        });
    snelheidImg = new Onderdeel("resource/Verkeerstechniek/snelheid", 30, 155, evaController);
    snelheidImg.setOnMouseClicked(
        new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent e) {
            Veld2Verkeerstechniek.this.schermController.setScherm(
                MainApp.VELD2VERKEERSTECHNIEKSNELHEID_ID);
          }
        });
    afstandImg = new Onderdeel("resource/Verkeerstechniek/afstand", -25, 190, evaController);
    afstandImg.setOnMouseClicked(
        new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent e) {
            Veld2Verkeerstechniek.this.schermController.setScherm(
                MainApp.VELD2VERKEERSTECHNIEKAFSTAND_ID);
          }
        });
    inhalenImg = new Onderdeel("resource/Verkeerstechniek/inhalen", 220, 160, evaController);
    inhalenImg.setOnMouseClicked(
        new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent e) {
            Veld2Verkeerstechniek.this.schermController.setScherm(
                MainApp.VELD2VERKEERSTECHNIEKINHALEN_ID);
          }
        });
    // pijlen center
    pijlen = new Pijlen(evaController, 300);

    // GridPane links
    links.add(inhalenImg, 0, 0);
    links.add(richtingaanwijzersImg, 0, 1);
    links.add(kruisenImg, 0, 2);
    links.add(linksafImg, 0, 3);
    links.add(rechtsafImg, 0, 4);

    // GridPane rechts
    rechts.add(voorrangImg, 0, 0);
    rechts.add(verkeerstekensImg, 0, 1);
    rechts.add(snelheidImg, 0, 2);
    rechts.add(afstandImg, 0, 3);
    rechts.add(openbareWegImg, 0, 4);

    // opmaak
    // algemeen
    mainGP.setHgap(50);
    // links
    links.setAlignment(Pos.CENTER);
    links.setVgap(20);
    links.setMaxWidth(80);
    inhalenImg.setFitHeight(80);
    inhalenImg.setFitWidth(80);
    inhalenImg.setTranslateX(180);
    richtingaanwijzersImg.setFitHeight(80);
    richtingaanwijzersImg.setFitWidth(80);
    richtingaanwijzersImg.setTranslateX(75);
    richtingaanwijzersImg.setTranslateY(-30);
    kruisenImg.setFitHeight(80);
    kruisenImg.setFitWidth(80);
    kruisenImg.setTranslateX(10);
    linksafImg.setFitHeight(80);
    linksafImg.setFitWidth(80);
    linksafImg.setTranslateX(75);
    linksafImg.setTranslateY(30);
    rechtsafImg.setFitHeight(80);
    rechtsafImg.setFitWidth(80);
    rechtsafImg.setTranslateX(180);
    // rechts
    rechts.setAlignment(Pos.CENTER);
    rechts.setVgap(20);
    rechts.setMaxWidth(80);
    voorrangImg.setFitHeight(80);
    voorrangImg.setFitWidth(80);
    voorrangImg.setTranslateX(-180);
    verkeerstekensImg.setFitHeight(80);
    verkeerstekensImg.setFitWidth(80);
    verkeerstekensImg.setTranslateX(-75);
    verkeerstekensImg.setTranslateY(-30);
    snelheidImg.setFitHeight(80);
    snelheidImg.setFitWidth(80);
    snelheidImg.setTranslateX(-10);
    afstandImg.setFitHeight(80);
    afstandImg.setFitWidth(80);
    afstandImg.setTranslateX(-75);
    afstandImg.setTranslateY(30);
    openbareWegImg.setFitHeight(80);
    openbareWegImg.setFitWidth(80);
    openbareWegImg.setTranslateX(-180);
    // pijlen center
    pijlen.setAlignment(Pos.CENTER);
    pijlen.setTranslateY(10);

    // Exit button
    exit = new Button("Ga terug");
    exit.setTranslateX(50);
    exit.setTranslateY(75);

    eva.setTranslateX(-50);
    eva.setTranslateY(75);

    // eventhandler
    exit.setOnAction(
        new EventHandler<ActionEvent>() {
          @Override
          public void handle(ActionEvent e) {
            exitVerkeerstechniek();
          }
        });
    exit.setStyle("-fx-background-color: #5F6A95; -fx-text-fill:white");

    for (Node c : links.getChildren()) {
      if (c instanceof Onderdeel) {
        c.setOnMouseClicked(
            new EventHandler<MouseEvent>() {
              @Override
              public void handle(MouseEvent e) {
                KleurKiezerHouder.show(links, (Onderdeel) c);
              }
            });
      }
    }

    for (Node c : rechts.getChildren()) {
      if (c instanceof Onderdeel) {
        c.setOnMouseClicked(
            new EventHandler<MouseEvent>() {
              @Override
              public void handle(MouseEvent e) {
                KleurKiezerHouder.show(rechts, (Onderdeel) c);
              }
            });
      }
    }

    eva.setOnMouseClicked(
        new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent e) {
            update();
          }
        });
    this.setOnMouseClicked(
        new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent e) {
            update();
          }
        });

    // achtergrond
    achtergrond = new ImageView("resource/Verkeerstechniek/achtergrondVt.png");
    achtergrond.setTranslateX(breedte / 2);
    mainGP.setTranslateX(-breedte * 0.53);
    mainGP.setTranslateY(5);
    mainGP.setMinWidth(breedte);
    mainGP.setMaxWidth(breedte);

    // Alle Gridpanes toevoegen an hoofd GridPane
    // volgorde is belangrijk, niet aanpassen!
    mainGP.add(pijlen, 2, 0);
    mainGP.add(rechts, 3, 0);
    mainGP.add(links, 1, 0);
    mainGP.add(exit, 3, 1);
    mainGP.add(labels, 2, 1);
    mainGP.add(eva, 1, 1);
    mainGP.setAlignment(Pos.CENTER);
    // mainGP.setStyle("-fx-background-color: #003399");

    this.getChildren().add(achtergrond);
    this.getChildren().add(mainGP);
    this.setAlignment(Pos.CENTER);

    selecteerKleur();
    update();
  }
示例#3
0
  private void buildGUI() {
    //    Group g = new Group();
    //    Stage s = new Stage();
    //    Scene sc = new Scene(g,500,300);
    //    s.setScene(sc);
    //    s.show();

    //	BorderPane backPanel = new BorderPane();
    imagePanel = new ImagePanel(width, height);
    //    backPanel.setCenter(i);
    g.getChildren().add(imagePanel);

    Button b1 = new Button();
    b1.setText("Save");
    b1.setTranslateX(200);
    b1.setTranslateY(400);
    g.getChildren().add(b1);
    b1.setOnMouseClicked(
        new EventHandler<Event>() {

          @Override
          public void handle(Event arg0) {
            // TODO Auto-generated method stub
            WritableImage wi = new WritableImage(width, height);
            sc.snapshot(wi);
            File f = new File("g.jpg");
            postMessage("The picture has been saved!");
            try {
              ImageIO.write(SwingFXUtils.fromFXImage(wi, null), "png", f);
            } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
              postMessage("Error!" + e.getMessage());
            }
          }
        });

    b2 = new Button();
    b2.setText("Draw");
    b2.setTranslateX(100);
    b2.setTranslateY(400);
    g.getChildren().add(b2);
    b2.setOnMouseClicked(
        new EventHandler<Event>() {

          @Override
          public void handle(Event arg0) {
            // TODO Auto-generated method stub
            //			l = new Reader.readline();

          }
        });

    Button b3 = new Button();
    b3.setText("Exit");
    b3.setTranslateX(300);
    b3.setTranslateY(400);
    g.getChildren().add(b3);
    b3.setOnMouseClicked(
        new EventHandler<MouseEvent>() {

          public void handle(MouseEvent arg0) {
            // TODO Auto-generated method stub
            System.exit(0);
          }
        });

    messageView = new TextArea();
    messageView.setTranslateX(10);
    messageView.setTranslateY(450);
    g.getChildren().add(messageView);
  }
示例#4
0
  public static void setJar(final Tile node) {
    node.data.put("type", "Jar");
    List<Node> toRemove = new ArrayList<>();
    for (Node n : node.node.getChildren()) {
      if (!n.getId().equals("delete")) {
        if (n.getId().equals("typeLabel")) {
          Label l = (Label) n;
          l.setText("jar");
          l.setTranslateY(l.getTranslateY() - 1);
        } else {
          toRemove.add(n);
        }
      }
    }

    VBox leftPadding = new VBox();
    leftPadding.setPrefWidth(14);
    VBox buttons = new VBox();
    VBox textBoxes = new VBox();
    VBox extra = new VBox();

    buttons.setSpacing(5);
    textBoxes.setSpacing(5);
    extra.setSpacing(5);

    buttons.setPadding(new Insets(7, 0, 0, 0));
    textBoxes.setPadding(new Insets(7, 0, 0, 0));
    extra.setPadding(new Insets(7, 0, 0, 0));

    textBoxes.setTranslateX(17);
    extra.setTranslateX(32);

    node.node.getChildren().removeAll(toRemove);

    final String name = "Package Name";
    final String name2 = "Jar Name";

    Button findPkg = new Button();
    final TextField pkgText = new TextField();
    final TextField jarName = new TextField();

    findPkg.getStyleClass().add("defaultButton");
    findPkg.setText("Find Package Name");
    findPkg.setPrefHeight(25);
    findPkg.setTranslateX(12);

    findPkg.setOnAction(
        new EventHandler<ActionEvent>() {
          @Override
          public void handle(ActionEvent event) {
            String mainClassName = Util.packageNameFromTile();
            if (mainClassName != null) {
              pkgText.setText(mainClassName);
            }
          }
        });

    pkgText.setText(name);
    pkgText.setPrefSize(150, 27);
    pkgText.setFont(Font.font("Segoe UI"));
    pkgText.setId("textBox");
    pkgText
        .textProperty()
        .addListener(
            new ChangeListener<String>() {
              @Override
              public void changed(
                  ObservableValue<? extends String> observable, String oldValue, String newValue) {
                node.data.put("package", pkgText.getText().trim());
              }
            });
    pkgText
        .focusedProperty()
        .addListener(
            new ChangeListener<Boolean>() {
              @Override
              public void changed(
                  ObservableValue<? extends Boolean> observable,
                  Boolean oldValue,
                  Boolean newValue) {
                if (newValue == true && pkgText.getText().equals(name)) {
                  pkgText.setText("");
                } else if (newValue == false && pkgText.getText().trim().equals("")) {
                  pkgText.setText(name);
                }
              }
            });

    jarName.setText(name2);
    jarName.setPrefSize(150, 27);
    jarName.setFont(Font.font("Segoe UI"));
    jarName.setId("textBox");
    jarName
        .textProperty()
        .addListener(
            new ChangeListener<String>() {
              @Override
              public void changed(
                  ObservableValue<? extends String> observable, String oldValue, String newValue) {
                node.data.put("jarname", jarName.getText().trim());
              }
            });
    jarName
        .focusedProperty()
        .addListener(
            new ChangeListener<Boolean>() {
              @Override
              public void changed(
                  ObservableValue<? extends Boolean> observable,
                  Boolean oldValue,
                  Boolean newValue) {
                if (newValue == true && jarName.getText().equals(name2)) {
                  jarName.setText("");
                } else if (newValue == false && jarName.getText().trim().equals("")) {
                  jarName.setText(name2);
                }
              }
            });

    final String defTxt = "Additional Flags";
    final TextField flags = new TextField();
    flags.setText(defTxt);
    flags.setPrefSize(150, 27);
    flags.setFont(Font.font("Segoe UI"));
    flags.setId("textBox");

    flags
        .focusedProperty()
        .addListener(
            new ChangeListener<Boolean>() {
              @Override
              public void changed(
                  ObservableValue<? extends Boolean> observable,
                  Boolean oldValue,
                  Boolean newValue) {
                if (newValue == true && flags.getText().equals(defTxt)) {
                  flags.setText("");
                } else if (newValue == false && flags.getText().trim().equals("")) {
                  flags.setText(defTxt);
                }
              }
            });
    flags
        .textProperty()
        .addListener(
            new ChangeListener<String>() {
              @Override
              public void changed(
                  ObservableValue<? extends String> observable, String oldValue, String newValue) {
                node.data.put("flags", flags.getText().trim());
              }
            });

    final String defTxt2 = "Output Directory";
    final TextField outputDir = new TextField();
    outputDir.setText(defTxt2);
    outputDir.setPrefSize(150, 27);
    outputDir.setFont(Font.font("Segoe UI"));
    outputDir.setId("textBox");

    outputDir
        .focusedProperty()
        .addListener(
            new ChangeListener<Boolean>() {
              @Override
              public void changed(
                  ObservableValue<? extends Boolean> observable,
                  Boolean oldValue,
                  Boolean newValue) {
                if (newValue == true && outputDir.getText().equals(defTxt2)) {
                  outputDir.setText("");
                } else if (newValue == false && outputDir.getText().trim().equals("")) {
                  outputDir.setText(defTxt2);
                }
              }
            });
    outputDir
        .textProperty()
        .addListener(
            new ChangeListener<String>() {
              @Override
              public void changed(
                  ObservableValue<? extends String> observable, String oldValue, String newValue) {
                node.data.put("output", outputDir.getText().trim());
              }
            });

    buttons.getChildren().addAll(findPkg);
    textBoxes.getChildren().addAll(pkgText, jarName);
    extra.getChildren().addAll(flags, outputDir);
    node.node.getChildren().addAll(leftPadding, buttons, textBoxes, extra);
  }
示例#5
0
  @Override
  public void start(Stage primaryStage) {
    // Create four buttons, for each of the read/writing ways.
    Button btnTextNoBuffer = new Button();
    btnTextNoBuffer.setText("Save and load to text file, no buffer.");
    Button btnTextWithBuffer = new Button();
    btnTextWithBuffer.setText("Save and load to text file, with buffer.");
    Button btnBinaryNoBuffer = new Button();
    btnBinaryNoBuffer.setText("Save and load to Mapped file.");
    Button btnBinaryWithBuffer = new Button();
    btnBinaryWithBuffer.setText("Save and load to binary file, with buffer.");

    // Textfield to enter the number of edges + label
    TextField nrOfEdges = new TextField();
    Label lbl = new Label();
    lbl.setText("Enter your desired level.");

    // Label to present the read/write time.
    Label speed = new Label();
    speed.setText("The write speed will be shown here.");
    // New canvas
    kochPanel = new Canvas(kpWidth, kpHeight);
    kochPanel.setTranslateX(100);

    // position the elements
    btnTextNoBuffer.setTranslateY(-80);
    btnTextWithBuffer.setTranslateY(-40);
    btnBinaryWithBuffer.setTranslateY(40);
    btnTextNoBuffer.setTranslateX(-240);
    btnTextWithBuffer.setTranslateX(-240);
    btnBinaryNoBuffer.setTranslateX(-240);
    btnBinaryWithBuffer.setTranslateX(-240);
    nrOfEdges.setTranslateY(-220);
    nrOfEdges.setTranslateX(-310);
    nrOfEdges.setMaxWidth(50);
    lbl.setTranslateX(-240);
    lbl.setTranslateY(-200);
    speed.setTranslateY(-240);

    StackPane root = new StackPane();
    // root.getChildren().add(btnTextNoBuffer);
    // root.getChildren().add(btnTextWithBuffer);
    root.getChildren().add(btnBinaryNoBuffer);
    // root.getChildren().add(btnBinaryWithBuffer);
    // root.getChildren().add(nrOfEdges);
    // root.getChildren().add(lbl);
    root.getChildren().add(kochPanel);
    root.getChildren().add(speed);

    Scene scene = new Scene(root, 700, 500);

    primaryStage.setTitle("Edges and stuff");
    primaryStage.setScene(scene);
    primaryStage.show();

    // Event handlers for buttons
    //        btnTextNoBuffer.setOnMouseClicked(event -> {
    //            int i = Integer.parseInt(nrOfEdges.getText());
    //            currentLevel = i;
    //            clearKochPanel();
    //            createKochFractal(i);
    //            double x = 0;
    //            try {
    //                x = saveTextFileNoBuffer();
    //            } catch (IOException e) {
    //                e.printStackTrace();
    //            }
    //            speed.setText(String.valueOf((x / 1000000)));
    //            //drawAllEdges();
    //        });

    //        btnTextWithBuffer.setOnMouseClicked(event -> {
    //            int i = Integer.parseInt(nrOfEdges.getText());
    //            currentLevel = i;
    //            clearKochPanel();
    //            createKochFractal(i);
    //            double x = 0;
    //            try {
    //                x = saveTextFileWithBuffer();
    //            }
    //            catch (Exception ex)
    //            {
    //                ex.printStackTrace();
    //            }
    //            speed.setText(String.valueOf(x / 1000000));
    //            //drawAllEdges();
    //        });

    btnBinaryNoBuffer.setOnMouseClicked(
        event -> {
          // int i = Integer.parseInt(nrOfEdges.getText());
          // currentLevel = i;
          //            if (i > 10)
          //            {
          //                speed.setText("Too high of a level count!");
          //                throw new UnsupportedOperationException();
          //            }
          clearKochPanel();
          // createKochFractal(i);
          double x = 0;
          try {
            x = loadBinaryFile();
          } catch (Exception e) {
            e.printStackTrace();
          }
          speed.setText(String.valueOf(x / 1000000));
          // drawAllEdges();
        });

    btnBinaryWithBuffer.setOnMouseClicked(
        event -> {
          int i = Integer.parseInt(nrOfEdges.getText());
          currentLevel = i;
          clearKochPanel();
          createKochFractal(i);
          double x = 0;
          try {
            x = saveBinaryFileWithBuffer();
          } catch (Exception e) {
            e.printStackTrace();
          }
          speed.setText(String.valueOf(x / 1000000));
        });
    Thread t =
        new Thread() {
          public void run() {
            watchForNewEdges();
          }
        };
    t.start();
  }
  @Override
  public void start(Stage stage) {
    // stage.initStyle(StageStyle.UNDECORATED);
    stage.setTitle("Hello Image Clipboard");
    Scene scene = new Scene(new Group(), 1024, 768);
    scene.setFill(Color.LIGHTGREEN);

    Rectangle overlay = new Rectangle();
    overlay.setWidth(800);
    overlay.setHeight(600);
    overlay.setFill(Color.TRANSPARENT);
    EventHandler<DragEvent> drop = de -> checkBoard(de.getDragboard(), de);

    EventHandler<DragEvent> enter =
        de -> {
          if (de != null && de.getDragboard() != null && de.getDragboard().hasImage()) {
            de.acceptTransferModes(TransferMode.ANY);
          }
        };

    EventHandler<DragEvent> dragged =
        de -> {
          if (de != null && de.getDragboard() != null && de.getDragboard().hasImage()) {
            de.acceptTransferModes(TransferMode.ANY);
          }
        };

    overlay.setOnDragDropped(drop);
    overlay.setOnDragEntered(enter);
    overlay.setOnDragOver(dragged);

    clearBtn = new Button("Clear");
    clearBtn.setTranslateX(50);
    clearBtn.setTranslateY(30);

    copyBtn = new Button("Copy");
    copyBtn.setTranslateX(125);
    copyBtn.setTranslateY(30);

    pasteBtn = new Button("Paste");
    pasteBtn.setTranslateX(200);
    pasteBtn.setTranslateY(30);

    clearBtn.setOnAction(e -> clear());
    copyBtn.setOnAction(
        e -> {
          ClipboardContent content = new ClipboardContent();
          content.putImage(imageView.getImage());
          Clipboard.getSystemClipboard().setContent(content);
        });
    pasteBtn.setOnAction(e -> checkBoard(Clipboard.getSystemClipboard(), null));

    Group root = (Group) scene.getRoot();
    root.getChildren().add(overlay);
    root.getChildren().add(imageView);
    root.getChildren().add(clearBtn);
    root.getChildren().add(copyBtn);
    root.getChildren().add(pasteBtn);

    stage.setScene(scene);
    stage.show();
  }
  public Veld1RijtechniekKijktechniek(
      SchermController schermCtrl, EvaController evaCtrl, LeerlingController llnCtrl) {
    evaController = evaCtrl;
    schermController = schermCtrl;
    llnController = llnCtrl;

    this.llnController.getLeerling().addView(this);

    aandachtBtn = new Button("Aandachtspunt");
    aandachtBtn.setOnAction(
        new EventHandler<ActionEvent>() {
          @Override
          public void handle(ActionEvent e) {
            aandacht();
          }
        });

    commentaarCol = new TableColumn("Commentaar");
    commentaarCol.setCellValueFactory(new PropertyValueFactory<Rijtechniek, String>("commentaar"));
    commentaarCol.setCellFactory(TextFieldTableCell.forTableColumn());
    commentaarCol.setOnEditCommit(
        new EventHandler<CellEditEvent<Rijtechniek, String>>() {
          @Override
          public void handle(CellEditEvent<Rijtechniek, String> t) {
            ((Rijtechniek) t.getTableView().getItems().get(t.getTablePosition().getRow()))
                .setCommentaar(t.getNewValue());
          }
        });

    table.setItems(data);
    table.getColumns().addAll(commentaarCol);

    commentaarFld = new TextField();
    commentaarFld.setPromptText("Commentaar");

    addButton = new Button("Voeg toe");
    addButton.setOnAction(
        new EventHandler<ActionEvent>() {
          @Override
          public void handle(ActionEvent e) {
            resetAandachtBtn();
            if (!"".equals(commentaarFld.getText())) {
              data.add(new Rijtechniek(commentaarFld.getText()));
              commentaarFld.clear();
            }
          }
        });
    table.setItems(data);
    table.setOnMouseClicked(
        new EventHandler<MouseEvent>() {
          @Override
          public void handle(MouseEvent e) {
            resetAandachtBtn();
          }
        });
    table.setEditable(true);

    vBox2.getChildren().addAll(table, commentaarFld);
    exit = new Button("Ga terug");

    exit.setOnAction(
        new EventHandler<ActionEvent>() {
          @Override
          public void handle(ActionEvent e) {
            evaController.saveListDataRijtechniek("Stuurtechniek", data);
            Veld1RijtechniekKijktechniek.this.schermController.setScherm(MainApp.RIJTECHNIEK_ID);
            resetAandachtBtn();
          }
        });
    delBtn = new Button("Verwijder");
    delBtn.setOnAction(
        new EventHandler<ActionEvent>() {
          @Override
          public void handle(ActionEvent e) {
            resetAandachtBtn();

            table.getItems().remove(table.getSelectionModel().getSelectedItem());
          }
        });
    delBtn.setMinHeight(30);
    delBtn.setMaxHeight(30);
    delBtn.setMinWidth(125);
    delBtn.setMaxWidth(125);
    delBtn.setAlignment(Pos.CENTER);
    delBtn.setTranslateX(-47);
    delBtn.setStyle("-fx-background-color: #5F6A95; -fx-text-fill:white");
    table.getStylesheets().add("resource/tableView.css");
    commentaarFld.setStyle("-fx-background-color:#789EBF; -fx-text-fill:white");
    commentaarCol.setMaxWidth(496);
    commentaarCol.setMinWidth(496);
    hBox1.getChildren().addAll(titelAfb, titel);
    hBox1.setMinHeight(50);
    hBox1.setMaxHeight(50);
    hBox1.setMinWidth(600);
    hBox1.setMaxWidth(600);
    hBox1.setSpacing(15);
    hBox1.setAlignment(Pos.CENTER);
    titelAfb.setFitHeight(50);
    titelAfb.setFitWidth(50);
    titel.setStyle("-fx-font: 40px Tahoma; -fx-text-fill:white");

    table.setMinWidth(500);
    table.setMaxWidth(500);
    table.setMinHeight(400);
    table.setMaxHeight(400);
    addButton.setMinHeight(30);
    addButton.setMaxHeight(30);
    addButton.setMinWidth(150);
    addButton.setMaxWidth(150);
    addButton.setAlignment(Pos.CENTER);
    aandachtBtn.setMinHeight(30);
    aandachtBtn.setMaxHeight(30);
    aandachtBtn.setMinWidth(150);
    aandachtBtn.setMaxWidth(150);
    aandachtBtn.setAlignment(Pos.CENTER);
    exit.setMinHeight(30);
    exit.setMaxHeight(30);
    exit.setMinWidth(150);
    exit.setMaxWidth(150);
    exit.setAlignment(Pos.CENTER);
    commentaarFld.setMinHeight(30);
    commentaarFld.setMaxHeight(30);
    commentaarFld.setMinWidth(250);
    commentaarFld.setMaxWidth(250);
    commentaarFld.setAlignment(Pos.CENTER);
    table.setTranslateX(70);
    commentaarFld.setTranslateX(90);
    addButton.setTranslateX(90);
    aandachtBtn.setTranslateX(90);
    exit.setTranslateX(90);

    addButton.setStyle("-fx-background-color: #5F6A95; -fx-text-fill:white");
    exit.setStyle("-fx-background-color: #5F6A95; -fx-text-fill:white");
    aandachtBtn.setStyle("-fx-background-color: #5F6A95; -fx-text-fill:white");

    gp.setStyle(
        "-fx-border-color: #282E54; -fx-border-radius:10 10 10 10;"
            + "-fx-effect: dropshadow(three-pass-box, rgba(0,0,0,0.8), 10, 0, 0, 0);"
            + "-fx-background-color: #282B3A;"
            + "-fx-background-radius: 5;");
    gp.setMaxWidth(900);
    gp.setMinWidth(900);
    gp.setMinHeight(600);
    gp.setMaxHeight(600);
    gp.setHgap(50);
    gp.setVgap(20);
    gp.setAlignment(Pos.CENTER);
    gp.add(hBox1, 0, 0, 2, 1);
    gp.add(table, 0, 1, 2, 1);
    gp.add(commentaarFld, 0, 2);
    gp.add(addButton, 1, 2);
    gp.add(aandachtBtn, 0, 3);
    gp.add(exit, 1, 3);
    gp.add(delBtn, 1, 3);

    this.setAlignment(Pos.CENTER);
    this.getChildren().add(gp);
    this.setStyle("-fx-background-image: url('resource/achtergrondStandaard.png')");

    update();
  }