Как отображать только выбранные значения в выпадающем списке, когда я загружаю его в базу данных с javafx - PullRequest
1 голос
/ 23 апреля 2019

Таким образом, проблема, с которой я столкнулся сейчас, заключается в том, что я могу обновить свою базу данных новыми пользователями, но она не отображает правильные данные для столбца роли, так как это из выборов в выпадающем списке, она отображает всю комбинациювыбор коробки вместо только выбранного.Проблема, как показано в ссылке ниже.https://imgur.com/a/XeDinn9

Метод AddUsers

public static void addUsers(String username, String password, String role, String staff_id) {

try {
            Connection conn = DBConnection.getConnection();

            String sql = "INSERT into Login(username, password, role, staff_id) VALUES(?,?,?,?)";

            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setString(1, username);
            ps.setString(2, password);
            ps.setString(3, role);
            ps.setString(4, staff_id);

            ps.executeUpdate();
            conn.close();

        } catch (SQLException ex)
        {

        }

    }

ObservableList для userRoleBox

ObservableList<String> userRoleList = FXCollections.observableArrayList("Admin", "Technician", "Finance", "Management", "Customer Services");

ИнициализацияcomboBox

@FXML
    private void initialize()
    {
     userRoleBox.setValue("Technician");
     userRoleBox.setItems(userRoleList);
    }

Метод инициализации при нажатии кнопки подтверждения для добавления пользователей в базу данных

    @FXML
    public void ConfirmUsers(ActionEvent event) throws SQLException, ClassNotFoundException
    {
        if(usernametxtfld.getText().isEmpty() || passwordtxtfld.getText().isEmpty() || userRoleBox.getItems().isEmpty() || staffIDtxtfld.getText().isEmpty())
        {
            Alert errorAlert = new Alert(Alert.AlertType.ERROR);
            errorAlert.setHeaderText("Please fill in all of the fields");
            errorAlert.setContentText("Click OK and ensure you have entered information in all of the boxes.");
            errorAlert.showAndWait();

        }
        else{

            CreateUsersDAO.addUsers(usernametxtfld.getText(),passwordtxtfld.getText(),userRoleBox.getItems().toString(),staffIDtxtfld.getText());
            clearFields();
            Alert confirmation = new Alert(Alert.AlertType.INFORMATION);
            confirmation.setHeaderText("New user has been added.");
            confirmation.showAndWait();
       }
    }

1 Ответ

1 голос
/ 23 апреля 2019

Вы можете выбрать combo box значение, как показано ниже:

userRoleBox.getSelectionModel().getSelectedItem();//will give you single item selected

Измените свой параметр в функции userRoleBox.getItems().toString() на userRoleBox.getSelectionModel().getSelectedItem();

Для получения дополнительной информации см. ComboBox

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...