Создать узлы в цикле - PullRequest
0 голосов
/ 12 марта 2020

Примечание: это обновленная версия исходного вопроса. Теперь спрашивают, как я могу получить доступ к значениям определенной строки для целей расчетов. Например, как я могу вычислить разницу между значениями costColumn и yieldColumn? (Поскольку в моих вопросах было много кода, я удалил большую часть импорта)

package application;

import javafx.application.Application;
import javafx.stage.Stage;


public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {Table.create(primaryStage);}
        catch(Exception e) {e.printStackTrace();}
    }

    public static void main(String[] args) {
        launch(args);
    }
}
package application;
public class UserJava {
    private String member;
    private double expenses;
    private double earnings;
    //Getter und Setter
    public String getMember() {
        return member;
    }
    public void setMember(String member) {
        this.member = member;
    }
    public double getExpenses() {
        return expenses;
    }
    public void setExpenses(double expenses) {
        this.expenses = expenses;
    }
    public double getEarnings() {
        return earnings;
    }
    public void setEarnings(double earnings) {
        this.earnings = earnings;
    }
}
package application;
import javafx.stage.Stage;

public class Table {
    static TableView<UserJava> table;

    public static void create (Stage primaryStage){
        try {
            GridPane primarygridpane = new GridPane();
            HBox hboxTable = new HBox(10);
            //Definition der Tabelle
            TableColumn<UserJava, String> userColumn = new TableColumn<>("Name");
            userColumn.setCellValueFactory(new PropertyValueFactory<>("member"));
            userColumn.setMinWidth(200);
            TableColumn<UserJava, Double> expensesColumn = new TableColumn<>("Ausgaben");
            expensesColumn.setCellValueFactory(new PropertyValueFactory<>("expenses"));
            expensesColumn.setMinWidth(100);
            TableColumn<UserJava, Double> earningsColumn = new TableColumn<>("Pfand");
            earningsColumn.setCellValueFactory(new PropertyValueFactory<>("earnings"));
            earningsColumn.setMinWidth(100);
            table = new TableView<>();
            table.getColumns().addAll(userColumn, expensesColumn, earningsColumn);
            TextField tfMember = new TextField();
            tfMember.setMinWidth(200);
            tfMember.setPromptText("Name");
            TextField tfExpenses = new TextField();
            tfExpenses.setMinWidth(100);
            tfExpenses.setPromptText("Ausgaben");
            TextField tfEarnings = new TextField();
            tfEarnings.setMinWidth(100);
            tfEarnings.setPromptText("Pfand");
            Button btnAdd = new Button("Hinzufügen");
            Button btnDelete = new Button("Löschen");
            hboxTable.getChildren().addAll(tfMember, tfExpenses, tfEarnings, btnAdd, btnDelete);
            table.setEditable(true);
            userColumn.setCellFactory(TextFieldTableCell.forTableColumn());
            // table.setItems(getUser());
            //Sonstiges
            Scene scene = new Scene(primarygridpane,725,400);
            Text titel = new Text("Application");
            titel.setFont(Font.font("Arial", FontWeight.BOLD, 28));
            primarygridpane.add(titel, 0, 0, 2, 1);
            primarygridpane.add(table, 0, 2);
            primarygridpane.add(hboxTable, 0, 3);
            // scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setScene(scene);
            primaryStage.show();
            //Funktionen
            btnAdd.setOnAction(new EventHandler<ActionEvent>(){
                @Override
                public void handle(ActionEvent e) {
                    try {
                        UserJava user = new UserJava();
                        user.setMember(tfMember.getText());
                        user.setExpenses(Double.parseDouble(tfExpenses.getText()));
                        user.setEarnings(Double.parseDouble(tfEarnings.getText()));
                        table.getItems().add(user);
                        tfMember.clear();
                        tfExpenses.clear();
                        tfEarnings.clear();
                        System.out.println(table.getItems());
                    }
                    catch (NumberFormatException Ausnahme) {}
                }
            });
            btnDelete.setOnAction(new EventHandler<ActionEvent>(){
                @Override
                public void handle(ActionEvent e) {
                    try {
                        ObservableList<UserJava> userSelected, userAll;
                        userAll = table.getItems();
                        userSelected = table.getSelectionModel().getSelectedItems();
                        userSelected.forEach(userAll::remove);
                        System.out.println();
                    }
                    catch (java.util.NoSuchElementException Ausnahme) {}
                }
            });
        }
        catch (Exception e) {e.printStackTrace();}
    }
    public ObservableList<UserJava> getUser(){
        ObservableList<UserJava> user = FXCollections.observableArrayList();
        user.add(new UserJava());
        return user;
    }

    public void changeCell(CellEditEvent<?, ?> ediditedCell) {
        UserJava personSelected = table.getSelectionModel().getSelectedItem();
        personSelected.setMember(ediditedCell.getNewValue().toString());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...