Как правильно реализовать наблюдаемый список для заполнения поля со списком - PullRequest
0 голосов
/ 28 июня 2019

В настоящее время я делаю проект, который будет действовать как календарь.В настоящее время я пытаюсь реализовать комбинированный список, который позволит пользователю выбрать месяц, к которому он хочет пропустить.У меня проблемы с реализацией наблюдаемого списка.Я посмотрел на другие учебные пособия, но мне кажется, что у меня все еще есть проблемы с тем, чтобы заставить комбинированный список выбрать то, что находится в списке.Мои параметры для функции observableArrayList неверны?https://github.com/zhadjah9559/Side_Proj_Calendar.git

public class FXMLDocumentController implements Initializable {


@FXML
private Pane top, bottom, leftPane;

@FXML
private GridPane CalendarPane;

@FXML
private Label monthTitle, eventsListLabel, createEventsLabel, createdEventsLabels;

@FXML 
private TextArea bottomTextArea;

@FXML
private DatePicker datePicker;



//Creating an observable list to populate comboBox
private ObservableList<String> list = FXCollections.observableArrayList("month"); //only testing

public ObservableList<String> getList() {
    return list;
}

public void setList(ObservableList<String> list) {
    this.list = list;
}

//populating the comboBox
@FXML
private ComboBox chooseMonth;




// individual dates or days (monday - sunday)
@FXML
private Label Label00, Label02, Label03, Label04,Label05,Label10,
        Label11, Label12, Label13, Label14, Label15, Label20, Label21,
        Label22, Label23, Label24, Label25, Label30, Label31, Label32,
        Label33, Label34, Label35, Label40, Label41, Label42, Label43,
        Label44, Label45, Label50, Label51, Label52, Label53, Label54,
        Label55, Label60, Label61, Label62, Label63, Label64, Label65;

@Override
public void initialize(URL url, ResourceBundle rb) {
    chooseMonth.setItems(list);
}    

@FXML
private void loadFebruary(ActionEvent event) throws IOException {   
    Parent registerPane = FXMLLoader.load(getClass().getResource("February.fxml"));
    Scene ViewScene = new Scene(registerPane);

    Stage window = (Stage) ((Node) event.getSource()).getScene().getWindow();
    window.setScene(ViewScene);
    window.show();
} 

}

1 Ответ

2 голосов
/ 28 июня 2019

Ваш код даже не скомпилируется, как написано. Вы пытаетесь передать String своему FXCollections.observableArrayList() методу. Этот метод не принимает аргумент String.

Чтобы создать правильный ObservableList, вам нужно передать фактический List в метод. Вот один такой пример, использующий Arrays.asList() для генерации List на лету:

ObservableList<String> list = FXCollections.observableList(Arrays.asList("Jan", "Feb", "Mar"));

Оттуда вы можете просто установить ComboBox пунктов:

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