Ошибка загрузки формы FXML при переопределении переменной инициализации

Я работаю над проектом fxml. Я хочу заполнить табличное представление из базы данных.

@FXML private TableView<complaints>tableview;
@FXML private TableColumn<complaints, Integer>ComplaintNo;
@FXML private TableColumn<complaints, String>Complaint;
@FXML private TableColumn<complaints, String>HandleComplaint;

это инициализация атрибутов.

@Override
public void initialize(URL url,ResourceBundle resources
{
ComplaintNo.setCellValueFactory(new PropertyValueFactory<complaints, Integer>("ComplaintNo"));
   Complaint.setCellValueFactory(new PropertyValueFactory<complaints, String>("Complaint"));
   HandleComplaint.setCellValueFactory(new PropertyValueFactory<complaints, String>("HandleComplaint"));
   tableview.setItems(data);
}

это переопределение метода initialize.

Я попытался получить набор результатов, который выдал мне ошибку, поэтому я попытался загрузить таблицу из жестко заданного списка. Ниже приведен метод observablelist:

private int count=1;
ObservableList<complaints> data=FXCollections.observableArrayList(
new complaints(count++, "asd", "sadasd"),
new complaints(count++, "asd", "sadasd"),
new complaints(count++, "asd", "sadasd"),
new complaints(count++, "asd", "sadasd")

);

Когда я загружаю fxml на этап, выдается список ошибок. Когда я комментирую тело метода инициализации и пытаюсь загрузить fxml, приложение запускается. Но таблица не заполняется. Может ли кто-нибудь указать мне, где я ошибся здесь?

Это часть fxml соответствующего табличного представления.

<TableView layoutX="269.0" layoutY="86.0" prefHeight="319.0" prefWidth="527.0"> 
    <columns> 
        <TableColumn fx:id="ComplaintNo" prefWidth="190.0" text="ComplaintNo" />
        <TableColumn fx:id="Complaint" prefWidth="162.0" text="Complaint" />
        <TableColumn fx:id="HandleComplaint" prefWidth="174.0" text="HandleComplaint" />
    </columns>
</TableView>

person Chandeesha Nanayakkara    schedule 19.08.2015    source источник
comment
Опубликуйте сообщение об ошибке и укажите, к каким строкам кода оно относится. Вероятно, вам также придется опубликовать некоторые из ваших файлов FXML. В идеале следует создать MCVE.   -  person James_D    schedule 19.08.2015
comment
ошибка выдается в выводе как исключение в методе запуска приложения.   -  person Chandeesha Nanayakkara    schedule 19.08.2015


Ответы (1)


Вы не установили fx:id для TableView, поэтому поле tableview в контроллере не будет инициализировано.

Итак, я предполагаю (поскольку вы не опубликовали исключение), что вы получаете NullPointerException при вызове

tableview.setItems(data);
person James_D    schedule 19.08.2015