当我添加一个项目时,tableview为空

时间:2016-08-12 07:39:33

标签: java javafx tableview

编辑:最后一个问题是由itachiUchiha解决但我有一个新问题, 当我添加一个项目时,表格视图不会显示它。 我添加了initialize和de add方法。 我在2窗口中做了应用程序。窗口中的代码,我有一个textfielsd来传递de date。

@FXML
private TextField esport;
@FXML
private TextField equips;
@FXML
private TextField despeses;
@FXML
private TextField esportistes;
@FXML
private TextField puntuacio;
@FXML
private TextField socis;
@FXML
private CheckBox festes;
@FXML
private CheckBox disiplina;
@FXML
private CheckBox voluntari;
@FXML
private CheckBox instalacions;
@FXML
private Button bafegir;
@FXML
private Button bcancelar;
Subvencio sub = new Subvencio();

 private void afegir(ActionEvent event) {
    //Passem els valors de el textfield als seus corresponents formats.
    int aux1 = Integer.parseInt(equips.getText());
    double aux2 = Double.parseDouble(despeses.getText());
    int aux3 = Integer.parseInt(esportistes.getText());
    int aux4 = Integer.parseInt(puntuacio.getText());
    int aux5 = Integer.parseInt(socis.getText());
    boolean aux6 = festes.isPressed();
    boolean aux7 = disiplina.isPressed();
    boolean aux8 = voluntari.isPressed();
    boolean aux9 = instalacions.isPressed();
    String aux10 = esport.getText();
    //Comprobem si tots els textfielsd estan omplits, sino es així, mostrem un error.
     if ((!equips.getText().isEmpty())
        && (equips.getText().trim().length()!=0)
        && (!despeses.getText().isEmpty())
        && (despeses.getText().trim().length()!=0)
            && (!esportistes.getText().isEmpty())
        && (esportistes.getText().trim().length()!=0)
            && (!puntuacio.getText().isEmpty())
        && (puntuacio.getText().trim().length()!=0)
            && (!socis.getText().isEmpty())
        && (socis.getText().trim().length()!=0)
            && (!esport.getText().isEmpty())
        && (esport.getText().trim().length()!=0))
     { 
       //Carregem un controllardor per poder crear subvencions i la creeem. en cabar aques proces la finestra es tanca.
       GeneralController aux = new GeneralController();
       aux.subs = FXCollections.observableArrayList();
       sub.setEsport(aux10);
       sub.setEquips(aux1);
       sub.setEsportistes(aux3);
       sub.setFestes(aux6);
       sub.setFormacio(aux7);
       sub.setInstalacions(aux9);
       sub.setPuntuacio(aux4);
       sub.setSocis(aux5);
       sub.setVoluntari(aux8);
       sub.setdespeses(aux2);
       aux.subs.add(sub);
       Node minodo = (Node) event.getSource(); 
       minodo.getScene().getWindow().hide();
     }
     else {
        Alert alert = new Alert(Alert.AlertType.ERROR);
        //Apliquem el css cridant al metode dialogpane
        DialogPane dialogPane = alert.getDialogPane();
        dialogPane.getStylesheets().add(getClass().getResource("/estil/flatterfx.css").toExternalForm());
        dialogPane.getStyleClass().add("button");
        alert.setTitle("Error");
        alert.setHeaderText("Error al afegir una subvenció.");
        alert.setContentText("Deus emplenar tots els cuadres de text per poder afegir una subvenció.");
        Optional<ButtonType> result = alert.showAndWait();

     }
}
按钮中的

代码添加了打开第二个窗口。

private void afegir(ActionEvent event) throws IOException {
    //Carregem el controlador i inicialitzem la finestra a obrir.
    FXMLLoader loader = new FXMLLoader(getClass().getResource("/model/Afegir.fxml"));
    Parent root = loader.load();
    Scene scene = new Scene(root);
    Stage ventana2= new Stage();
    ventana2.setMinHeight(380);
    ventana2.setMinWidth(770);
    ventana2.setTitle("Afegir dades");
    ventana2.initModality(Modality.APPLICATION_MODAL);
    ventana2.setScene(scene);
    //Fem que espere fins a ser tancada i coloquem els elements a la taula.subs = new ObservableList<Subvencio>();
    ventana2.showAndWait();
    tabla.setItems(subs);
}

和tableview和set items中set值的初始化int de 1窗口。

  */
@Override
public void initialize(URL url, ResourceBundle rb) {
    ArrayList<Subvencio> misSubs = new ArrayList<Subvencio>();
    subs = FXCollections.observableArrayList(misSubs);
    cesport.setCellValueFactory(new PropertyValueFactory<Subvencio, String>("Esport"));
    ctotal.setCellValueFactory(new PropertyValueFactory<Subvencio, Double>("Subvenció"));
    tabla.setItems(subs);
}

感谢您的帮助。

0 个答案:

没有答案