private void showDialog(String title, String message, Throwable throwable) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle(title); alert.setHeaderText(title); alert.setContentText(message); StringWriter stringWriter = new StringWriter(); PrintWriter printwriter = new PrintWriter(stringWriter); throwable.printStackTrace(printwriter); String exceptionText = stringWriter.toString(); Label label = new Label("The exception stacktrace was:"); TextArea textArea = new TextArea(exceptionText); textArea.setEditable(false); textArea.setWrapText(true); textArea.setMaxWidth(Double.MAX_VALUE); textArea.setMaxHeight(Double.MAX_VALUE); GridPane.setVgrow(textArea, Priority.ALWAYS); GridPane.setHgrow(textArea, Priority.ALWAYS); GridPane expContent = new GridPane(); expContent.setMaxWidth(Double.MAX_VALUE); expContent.add(label, 0, 0); expContent.add(textArea, 0, 1); alert.getDialogPane().setExpandableContent(expContent); alert.showAndWait(); }
@Override public void start(Stage stage) { try { Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml")); Scene scene = new Scene(root); stage.setScene(scene); stage.show(); } catch (Exception ex) { Alert alert = new Alert(Alert.AlertType.ERROR); alert.setTitle("Lobo Software"); alert.setHeaderText("Se ha presentado un error inesperado"); alert.setContentText("El error técnico se muestra a continuación:"); StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); ex.printStackTrace(pw); String exceptionText = sw.toString(); TextArea textArea = new TextArea(exceptionText); textArea.setEditable(false); textArea.setWrapText(true); textArea.setMaxWidth(Double.MAX_VALUE); textArea.setMaxHeight(Double.MAX_VALUE); GridPane.setVgrow(textArea, Priority.ALWAYS); GridPane.setHgrow(textArea, Priority.ALWAYS); GridPane expContent = new GridPane(); expContent.setMaxWidth(Double.MAX_VALUE); expContent.add(textArea, 0, 1); alert.getDialogPane().setExpandableContent(expContent); alert.showAndWait(); } }
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(); }
private Button createCommandLinksButton(ButtonType buttonType) { // look up the CommandLinkButtonType for the given ButtonType CommandLinksButtonType commandLink = typeMap.getOrDefault(buttonType, new CommandLinksButtonType(buttonType)); // put the content inside a button final Button button = new Button(); button.getStyleClass().addAll("command-link-button"); // $NON-NLS-1$ button.setMaxHeight(Double.MAX_VALUE); button.setMaxWidth(Double.MAX_VALUE); button.setAlignment(Pos.CENTER_LEFT); final ButtonData buttonData = buttonType.getButtonData(); button.setDefaultButton(buttonData != null && buttonData.isDefaultButton()); button.setOnAction(ae -> setResult(buttonType)); final Label titleLabel = new Label(commandLink.getButtonType().getText()); titleLabel .minWidthProperty() .bind( new DoubleBinding() { { bind(titleLabel.prefWidthProperty()); } @Override protected double computeValue() { return titleLabel.getPrefWidth() + 400; } }); titleLabel.getStyleClass().addAll("line-1"); // $NON-NLS-1$ titleLabel.setWrapText(true); titleLabel.setAlignment(Pos.TOP_LEFT); GridPane.setVgrow(titleLabel, Priority.NEVER); Label messageLabel = new Label(commandLink.getLongText()); messageLabel.getStyleClass().addAll("line-2"); // $NON-NLS-1$ messageLabel.setWrapText(true); messageLabel.setAlignment(Pos.TOP_LEFT); messageLabel.setMaxHeight(Double.MAX_VALUE); GridPane.setVgrow(messageLabel, Priority.SOMETIMES); Node commandLinkImage = commandLink.getGraphic(); Node view = commandLinkImage == null ? new ImageView( CommandLinksDialog.class.getResource("arrow-green-right.png").toExternalForm()) : //$NON-NLS-1$ commandLinkImage; Pane graphicContainer = new Pane(view); graphicContainer.getStyleClass().add("graphic-container"); // $NON-NLS-1$ GridPane.setValignment(graphicContainer, VPos.TOP); GridPane.setMargin(graphicContainer, new Insets(0, 10, 0, 0)); GridPane grid = new GridPane(); grid.minWidthProperty().bind(titleLabel.prefWidthProperty()); grid.setMaxHeight(Double.MAX_VALUE); grid.setMaxWidth(Double.MAX_VALUE); grid.getStyleClass().add("container"); // $NON-NLS-1$ grid.add(graphicContainer, 0, 0, 1, 2); grid.add(titleLabel, 1, 0); grid.add(messageLabel, 1, 1); button.setGraphic(grid); button.minWidthProperty().bind(titleLabel.prefWidthProperty()); if (commandLink.isHidden) { button.setVisible(false); button.setPrefHeight(1); } return button; }
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(); }