OsobaDialog
Ošetření výjimky při parsování dataNarození. Jde o to, že Netbeans v části (řádek 96): catch( ParseException | IllegalArgumentException ex) píše, že mám odstranit klaluzuli ParseException.
java
package upominacnarozenin;
import java.text.ParseException;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
import javafx.scene.layout.GridPane;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import javafx.stage.Window;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Roman64
*/
public class OsobaDialog extends Stage{
private Osoba osoba = null;
TextField jmenoTextField = new TextField(); // jsou final aby mohli býti čteny z metody vnitřní třídy (?)
TextField datumNarozeniTextField = new TextField();
private ErrorMsg errorMsg = new ErrorMsg();
public OsobaDialog(Window okno) { // konstruktor
setTitle("Nová osoba");
setWidth(350);
setHeight(200);
initStyle(StageStyle.UTILITY);
initModality(Modality.WINDOW_MODAL);
initOwner(okno);
setScene(vytvorScenu());
}
public Osoba getOsoba() {
return osoba;
}
private Scene vytvorScenu(){ // vytvoření Scény
//kontejner
VBox box = new VBox();
box.setAlignment(Pos.CENTER);
box.setSpacing(20);
//mřížka pro TextFiled a Label
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
grid.setPadding(new Insets(10));
grid.setHgap(10);
grid.setVgap(10);
//textFiel-y a Label-y:
Label jmenoLabel = new Label("Jméno");
Label datumNarozeniLabel = new Label("Datum narození");
// TextField jmenoTextField = new TextField(); //dal jsem ji jako atributy třídy
// TextField datumNarozeniTextField = new TextField(); //dal jsem ji jako atributy třídy
//umístění TextField-ů a Label-ů do mřížky:
grid.add(jmenoLabel, 0, 0);
grid.add(datumNarozeniLabel, 0, 1);
grid.add(jmenoTextField, 1, 0);
grid.add(datumNarozeniTextField, 1, 1);
Button tlacitko = new Button("Přidat");
tlacitko.setOnAction(new EventHandler<ActionEvent>() // anomymní třída EventHandler, která obsluhuje tlačítko "Přidat"
{ @Override
public void handle(ActionEvent event) {
try {
LocalDate datumNarozeniny = LocalDate.parse(datumNarozeniTextField.getText(), DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM));
osoba = new Osoba(jmenoTextField.getText(), datumNarozeniny);
hide(); // skrytí formuláře...
}
catch( ParseException | IllegalArgumentException ex) { // TADY MI NETBEANS HÁZÍ CHYBU: "remove catch ParseException clause"
System.out.println("Chyba:"+ ex.getLocalizedMessage() );
errorMsg.ukazErrorMessage(jmenoTextField.getScene().getWindow(),ex.getLocalizedMessage());
errorMsg.showAndWait();
}
}
}
);
box.getChildren().addAll(grid, tlacitko); // grid a tlacitko přidáme do kontejnetu box (třída VBox)
//Scene scene = new Scene(box);
return new Scene(box); // vytvoří novou Scenu a vrátí na ní referenci
}
}
Neformátovaný
Přidáno: 14.7.2015
Expirace: Neuvedeno