TableView Получить значения из ячеек в таблице, и присвоить эти значения переменным, а потом получить их сумму - Java

Узнай цену своей работы

Формулировка задачи:

есть код таблицы из примера с оф сайта docs.oracle как можно получить и присвоить переменной цифровое значение введенное в одну из ячеек если все данные содержатся в кавычках
Листинг программы
  1. FXCollections.observableArrayList(
  2. new Person("Jacob", "Smith", "jacob.smith@example.com"),
  3. new Person("Isabella", "Johnson", "isabella.johnson@example.com"),
  4. new Person("Ethan", "Williams", "ethan.williams@example.com"),
  5. new Person("Emma", "Jones", "emma.jones@example.com"),
  6. new Person("Michael", "Brown", "michael.brown@example.com"));
а потом этой ячейке присвоить метод
Листинг программы
  1. .setOnKeyReleased(new EventHandler<KeyEvent>() {
  2. public void handle(KeyEvent ke) {
  3. } });
чтобы при вводе других значений можно было производить сумму или еще какие-то арифметические операции над ячейками таблице
Листинг программы
  1. import javafx.application.Application;
  2. import javafx.beans.property.SimpleStringProperty;
  3. import javafx.collections.FXCollections;
  4. import javafx.collections.ObservableList;
  5. import javafx.event.ActionEvent;
  6. import javafx.event.EventHandler;
  7. import javafx.geometry.Insets;
  8. import javafx.scene.Group;
  9. import javafx.scene.Scene;
  10. import javafx.scene.control.Button;
  11. import javafx.scene.control.Label;
  12. import javafx.scene.control.TableColumn;
  13. import javafx.scene.control.TableColumn.CellEditEvent;
  14. import javafx.scene.control.TableView;
  15. import javafx.scene.control.TextField;
  16. import javafx.scene.control.cell.PropertyValueFactory;
  17. import javafx.scene.control.cell.TextFieldTableCell;
  18. import javafx.scene.layout.HBox;
  19. import javafx.scene.layout.VBox;
  20. import javafx.scene.text.Font;
  21. import javafx.stage.Stage;
  22. public class TableViewSample extends Application {
  23. private TableView<Person> table = new TableView<Person>();
  24. private final ObservableList<Person> data =
  25. FXCollections.observableArrayList(
  26. new Person("Jacob", "Smith", "jacob.smith@example.com"),
  27. new Person("Isabella", "Johnson", "isabella.johnson@example.com"),
  28. new Person("Ethan", "Williams", "ethan.williams@example.com"),
  29. new Person("Emma", "Jones", "emma.jones@example.com"),
  30. new Person("Michael", "Brown", "michael.brown@example.com"));
  31. final HBox hb = new HBox();
  32. public static void main(String[] args) {
  33. launch(args);
  34. }
  35. @Override
  36. public void start(Stage stage) {
  37. Scene scene = new Scene(new Group());
  38. stage.setTitle("Table View Sample");
  39. stage.setWidth(450);
  40. stage.setHeight(550);
  41. final Label label = new Label("Address Book");
  42. label.setFont(new Font("Arial", 20));
  43. table.setEditable(true);
  44. TableColumn firstNameCol = new TableColumn("First Name");
  45. firstNameCol.setMinWidth(100);
  46. firstNameCol.setCellValueFactory(
  47. new PropertyValueFactory<Person, String>("firstName"));
  48. firstNameCol.setCellFactory(TextFieldTableCell.forTableColumn());
  49. firstNameCol.setOnEditCommit(
  50. new EventHandler<CellEditEvent<Person, String>>() {
  51. @Override
  52. public void handle(CellEditEvent<Person, String> t) {
  53. ((Person) t.getTableView().getItems().get(
  54. t.getTablePosition().getRow())
  55. ).setFirstName(t.getNewValue());
  56. }
  57. }
  58. );
  59.  
  60. TableColumn lastNameCol = new TableColumn("Last Name");
  61. lastNameCol.setMinWidth(100);
  62. lastNameCol.setCellValueFactory(
  63. new PropertyValueFactory<Person, String>("lastName"));
  64. lastNameCol.setCellFactory(TextFieldTableCell.forTableColumn());
  65. lastNameCol.setOnEditCommit(
  66. new EventHandler<CellEditEvent<Person, String>>() {
  67. @Override
  68. public void handle(CellEditEvent<Person, String> t) {
  69. ((Person) t.getTableView().getItems().get(
  70. t.getTablePosition().getRow())
  71. ).setLastName(t.getNewValue());
  72. }
  73. }
  74. );
  75. TableColumn emailCol = new TableColumn("Email");
  76. emailCol.setMinWidth(200);
  77. emailCol.setCellValueFactory(
  78. new PropertyValueFactory<Person, String>("email"));
  79. emailCol.setCellFactory(TextFieldTableCell.forTableColumn());
  80. emailCol.setOnEditCommit(
  81. new EventHandler<CellEditEvent<Person, String>>() {
  82. @Override
  83. public void handle(CellEditEvent<Person, String> t) {
  84. ((Person) t.getTableView().getItems().get(
  85. t.getTablePosition().getRow())
  86. ).setEmail(t.getNewValue());
  87. }
  88. }
  89. );
  90. table.setItems(data);
  91. table.getColumns().addAll(firstNameCol, lastNameCol, emailCol);
  92. final TextField addFirstName = new TextField();
  93. addFirstName.setPromptText("First Name");
  94. addFirstName.setMaxWidth(firstNameCol.getPrefWidth());
  95. final TextField addLastName = new TextField();
  96. addLastName.setMaxWidth(lastNameCol.getPrefWidth());
  97. addLastName.setPromptText("Last Name");
  98. final TextField addEmail = new TextField();
  99. addEmail.setMaxWidth(emailCol.getPrefWidth());
  100. addEmail.setPromptText("Email");
  101. final Button addButton = new Button("Add");
  102. addButton.setOnAction(new EventHandler<ActionEvent>() {
  103. @Override
  104. public void handle(ActionEvent e) {
  105. data.add(new Person(
  106. addFirstName.getText(),
  107. addLastName.getText(),
  108. addEmail.getText()));
  109. addFirstName.clear();
  110. addLastName.clear();
  111. addEmail.clear();
  112. }
  113. });
  114. hb.getChildren().addAll(addFirstName, addLastName, addEmail, addButton);
  115. hb.setSpacing(3);
  116. final VBox vbox = new VBox();
  117. vbox.setSpacing(5);
  118. vbox.setPadding(new Insets(10, 0, 0, 10));
  119. vbox.getChildren().addAll(label, table, hb);
  120. ((Group) scene.getRoot()).getChildren().addAll(vbox);
  121. stage.setScene(scene);
  122. stage.show();
  123. }
  124. public static class Person {
  125. private final SimpleStringProperty firstName;
  126. private final SimpleStringProperty lastName;
  127. private final SimpleStringProperty email;
  128. private Person(String fName, String lName, String email) {
  129. this.firstName = new SimpleStringProperty(fName);
  130. this.lastName = new SimpleStringProperty(lName);
  131. this.email = new SimpleStringProperty(email);
  132. }
  133. public String getFirstName() {
  134. return firstName.get();
  135. }
  136. public void setFirstName(String fName) {
  137. firstName.set(fName);
  138. }
  139. public String getLastName() {
  140. return lastName.get();
  141. }
  142. public void setLastName(String fName) {
  143. lastName.set(fName);
  144. }
  145. public String getEmail() {
  146. return email.get();
  147. }
  148. public void setEmail(String fName) {
  149. email.set(fName);
  150. }
  151. }
  152. }

Решение задачи: «TableView Получить значения из ячеек в таблице, и присвоить эти значения переменным, а потом получить их сумму»

textual
Листинг программы
  1. bCol.setOnEditCommit(
  2.                 new EventHandler<CellEditEvent<Sum, Integer>>() {
  3.                     @Override
  4.                     public void handle(CellEditEvent<Sum, Integer> t) {
  5.                         ((Sum) t.getTableView().getItems().get(
  6.                                 t.getTablePosition().getRow())
  7.                         ).setZnavSTR(t.getNewValue());
  8.                         table.refresh();
  9.                     }
  10.                 });

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут