В настоящее время я работаю над проектом, в котором я пытаюсь реализовать TableView
, который принимает пользовательский ввод (имя, рейтинг, название ресторана).Ниже я предоставил свой код, который уже находится в моем классе контроллера.Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я что-то печатаю в текстовых полях и нажимаю кнопку «отправить», это абсолютно ничего не делает.В чем может быть проблема?
Вот начало и конец моего кода, я не включил остальные, потому что метод Login является единственным, который вызывает у меня проблемы при попытке инициализации.
public class MainController{
@FXML
private Label lblStatus;
@FXML
private TextField txtUsername;
@FXML
private TextField txtPassword;
/*This method allows user login and when login is successful then user is taken to the main screen.*/
public void Login (ActionEvent event) throws Exception {
if (txtUsername.getText().equals("user") && txtPassword.getText().equals("pass")) {
lblStatus.setText("Login Success");
Stage primaryStage = new Stage();
Parent root = FXMLLoader.load(getClass().getResource("/application/RestScene.fxml"));
Scene scene = new Scene(root,400,400);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setTitle("Restaurant Advisor");
primaryStage.setScene(scene);
primaryStage.show();
}
else
{
lblStatus.setText("Login Failed");
}
}
public TableView<Table> tableview;
public TableColumn<Table, String> colName;
public TableColumn<Table, Integer> colRating;
public TableColumn<Table, String>colRestaurants;
public TextField txtFieldName;
public TextField txtFieldRating;
public TextField txtFieldRestaurant;
public void initialize(URL location, ResourceBundle resources) {
colName.setCellValueFactory(new PropertyValueFactory<>("TableName"));
colRating.setCellValueFactory(new PropertyValueFactory<>("TableRating"));
colRestaurants.setCellValueFactory(new PropertyValueFactory<>("TableRestaurants"));
tableview.setItems(observableList);
}
ObservableList<Table> observableList = FXCollections.observableArrayList(new Table ("Test", 1, "makiyaki"));
public void buttonSubmit(ActionEvent event) {
Table table = new Table (txtFieldName.getText(), Integer.parseInt(txtFieldRating.getText()), txtFieldRestaurant.getText());
tableview.getItems().add(table);
}
Вот код FXML для конкретного табличного представления
<AnchorPane layoutX="596.0" layoutY="338.0" prefHeight="284.0" prefWidth="461.0">
<children>
<TableView fx:id="tableview" layoutX="-3.0" layoutY="-1.0" prefHeight="243.0" prefWidth="315.0">
<columns>
<TableColumn prefWidth="75.0" text="Name" />
<TableColumn prefWidth="75.0" text="Rating" />
<TableColumn prefWidth="75.0" text="Restaurant" />
</columns>
</TableView>
<TextField fx:id="txtFieldName" layoutX="39.0" layoutY="253.0" prefHeight="12.0" prefWidth="83.0" promptText="Name" />
<TextField fx:id="txtFieldRating" layoutX="173.0" layoutY="249.0" prefHeight="12.0" prefWidth="83.0" promptText="Rating" />
<TextField fx:id="txtFieldRestaurant" layoutX="317.0" layoutY="239.0" prefHeight="12.0" prefWidth="83.0" promptText="Restaurant" />
<Button layoutX="341.0" layoutY="58.0" mnemonicParsing="false" onAction="#buttonSubmit" text="Submit" />
</children>
</AnchorPane>
</children>
</AnchorPane>