0

Problem: ComboBox does not populate with observable array list.

I've tried to solve this issue on my own via many routes. The last solution I tried is the following: How do I populate a combobox with an observableArray?

Solution: ?????

If you need more information, let me know. Also, if I could've found the answer via another post, website, or book, please advise. see code below:

package application.budget;

import datamodel.Account;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
import javafx.util.StringConverter;

import java.io.IOException;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.List;


public class Controller {

    public Button detacctinfo;
    private Stage stage;
    private Scene scene;
    private Parent root;


    @FXML
    private Button createnewacct, Submit;

    @FXML
    private AnchorPane mainPanel;

    @FXML
    private ComboBox<Account> selectacct;

    @FXML
    Label acctbalField = new Label();


    private NumberFormat fmt;

public void initialize () {

    ObservableList<Account> accountlist = FXCollections.observableArrayList();
    accountlist.add(new Account("Bank of America", 10010101.32));
    accountlist.add(new Account("Prosperity Bank", 10010101.32));


    ComboBox<Account> selectacct = new ComboBox<>();

    // Use a StringConverter to configure our ComboBox to display only the film's title
    selectacct.setConverter(new StringConverter<Account>() {
        @Override
        public String toString(Account account) {
            return account.getAccountName();
        }

        @Override
        public Account fromString(String string) {
            return null;
        }
    });

    // Finally, set our ComboBox's items to our sample list
    selectacct.setItems(accountlist);

    System.out.println(accountlist);

}

public void OnItemSelected(ActionEvent e ) throws IOException {


    root = FXMLLoader.load(getClass().getResource("AccountHome.fxml"));
    Stage window = (Stage) Submit.getScene().getWindow();
    window.setScene(new Scene(root));


    }

}

    package datamodel;




public class Account {

    private String accountName;
    private Double accountBalance;

    public Account(String accountName, Double accountBalance) {
        this.accountName = accountName;
        this.accountBalance = accountBalance;

    }

    public String getAccountName() {
        return accountName;
    }

    public void setAccountName(String accountName) {
        this.accountName = accountName;
    }

    public Double getAccountBalance() {
        return accountBalance;
    }

    public void setAccountBalance(Double accountBalance) {
        this.accountBalance = accountBalance;
    }

    @Override //Esto dice que cuando un variable se usa, va a dar el valor de abajo
    public String toString() {
        return accountName;
    }
            public String getBalance() {
            return String.valueOf(accountBalance);
    }


}
jewelsea
  • 150,031
  • 14
  • 366
  • 406
foffor
  • 3
  • 2

0 Answers0