java.lang.NullPointerException TableView

236
05 ноября 2017, 16:00

Если убрать комментарии, то вылазит ошибка

Caused by: java.lang.NullPointerException at calc.controller.Controller.initialize(Controller.java:39) ... 27 more package calc.controller;

import java.io.IOException;
import calc.Main;
import calc.User;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
public class Controller {
    Main main=new Main();
    private ObservableList<User> usersData =FXCollections.observableArrayList();
    @FXML
    private TableView<User> TBUser;
    @FXML
    private TableColumn<User, String> TCName;
    private TableColumn<User, Integer> TCmon1;
    private TableColumn<User, Integer> TCmon0;
    private TableColumn<User, Integer> TCtue1;
    private TableColumn<User, Integer> TCtue0;
    private TableColumn<User, Integer> TCwed1;
    private TableColumn<User, Integer> TCwed0;
    private TableColumn<User, Integer> TCthu1;
    private TableColumn<User, Integer> TCthu0;
    private TableColumn<User, Integer> TCfri1;
    private TableColumn<User, Integer> TCfri0;
    private TableColumn<User, Integer> TCsat1;
    private TableColumn<User, Integer> TCsat0;
    private TableColumn<User, Integer> TCsum;
    @FXML
    private void initialize() {
        initData();
        TCName.setCellValueFactory(new PropertyValueFactory<User, String>("name"));
//        TCmon1.setCellValueFactory(new PropertyValueFactory<User, Integer>("mon1"));
//        TCmon0.setCellValueFactory(new PropertyValueFactory<User, Integer>("mon0"));
//        TCtue1.setCellValueFactory(new PropertyValueFactory<User, Integer>("tue1"));
//        TCtue0.setCellValueFactory(new PropertyValueFactory<User, Integer>("tue0"));
//        TCwed1.setCellValueFactory(new PropertyValueFactory<User, Integer>("wed1"));
//        TCwed0.setCellValueFactory(new PropertyValueFactory<User, Integer>("wed0"));
//        TCthu1.setCellValueFactory(new PropertyValueFactory<User, Integer>("thu1"));
//        TCthu0.setCellValueFactory(new PropertyValueFactory<User, Integer>("thu0"));
//        TCfri1.setCellValueFactory(new PropertyValueFactory<User, Integer>("fri1"));
//        TCfri0.setCellValueFactory(new PropertyValueFactory<User, Integer>("fri0"));
//        TCsat1.setCellValueFactory(new PropertyValueFactory<User, Integer>("sat1"));
//        TCsat0.setCellValueFactory(new PropertyValueFactory<User, Integer>("sat0"));
//        TCsum.setCellValueFactory(new PropertyValueFactory<User, Integer>("sum"));
        TBUser.setItems(usersData);
    }
    private void initData() {
        usersData.add(new User("Es",1,2,3,4,5,6,7,8,9,10,11,12,13));
        usersData.add(new User("Es",1,2,3,4,5,6,7,8,9,10,11,12,13));
    }
    @FXML
    public void showSettings(ActionEvent actionEvent) throws IOException {
        main.showSettings(actionEvent);
    }
    @FXML
    Button btn;
    @FXML
    public void onClickOpen() throws IOException {
    }
}

Сам User

package calc;
public class User {
    private String Name;
    private int mon1;
    private int mon0;
    private int tue1;
    private int tue0;
    private int wed1;
    private int wed0;
    private int thu1;
    private int thu0;
    private int fri1;
    private int fri0;
    private int sat1;
    private int sat0;
    private int sum;
    public User (String Name,int mon1,int mon0,int tue1,int tue0,int wed1,int wed0,int thu1,int thu0,int fri1,int fri0,int sat1,int sat0,int sum) 
    {
        this.Name=Name;
        this.mon1=mon1;
        this.mon0=mon0;
        this.tue1=tue1;
        this.tue0=tue0;
        this.wed1=wed1;
        this.wed0=wed0;
        this.thu1=thu1;
        this.thu0=thu0;
        this.fri1=fri1;
        this.fri0=fri0;
        this.sat1=sat1;
        this.sat0=sat0;
        this.sum=sum;
    }
    public String getName(){
        return Name;
    }
    public String setName(String Name){
        return this.Name=Name;
    }
    public int getmon1() {
        return mon1;
    }
    public int setmon1(int mon1) {
        return this.mon1=mon1;
    }
    public int gettue1() {
        return tue1;
    }
    public int settue1(int tue1) {
        return this.tue1=tue1;
    }
    public int getwed1() {
        return wed1;
    }
    public int setwed1(int wed1) {
        return this.wed1=wed1;
    }
    public int getthu1() {
        return thu1;
    }
    public int setthu1(int thu1) {
        return this.thu1=thu1;
    }
    public int getfri1() {
        return fri1;
    }
    public int setfri1(int fri1) {
        return this.fri1=fri1;
    }
    public int getsat1() {
        return sat1;
    }
    public int setsat1(int sat1) {
        return this.sat1=sat1;
    }
    public int getsum() {
        return sum;
    }
    public int setsum(int sum) {
        return this.sum=sum;
        }
    public int getmon0() {
        return mon0;
    }
    public int setmon0(int mon0) {
        return this.mon0=mon0;
    }
    public int gettue0() {
        return tue0;
    }
    public int settue0(int tue0) {
        return this.tue0=tue0;
    }
    public int getwed0() {
        return wed0;
    }
    public int setwed0(int wed0) {
        return this.wed0=wed0;
    }
    public int getthu0() {
        return thu0;
    }
    public int setthu0(int thu0) {
        return this.thu0=thu0;
    }
    public int getfri0() {
        return fri0;
    }
    public int setfri0(int fri0) {
        return this.fri0=fri0;
    }
    public int getsat0() {
        return sat0;
    }
    public int setsat0(int sat0) {
        return this.sat0=sat0;
    }
}

Текст в коде закомментирован правильно. Т.е TCName.setCellValueFactory срабатывает и отображается. Голову уже сломал, так и не нашел в чем ошибка. Заранее спасибо!

Answer 1

Подозреваю, что вам надо добавить аннотацию @FXML переда каждым полем, а не только TCName.

READ ALSO
Android. Иногда SoundPool не воспроизводит мелодию

Android. Иногда SoundPool не воспроизводит мелодию

Проблема заключается в том, что бывает, при первом за день запуске приложения, SoundPool не воспроизводит мелодиюActivity запускается, а мелодии нет

170
Вшить SQLite.Interop в exe с помощью Costura.Fody

Вшить SQLite.Interop в exe с помощью Costura.Fody

После использования CosturaFody почти все dll пошли в exe, но пару dll, которые в папках, не могу закинуть в exe

289
Отправка сообщения от c# сервера

Отправка сообщения от c# сервера

Есть C# проект с GUIЕсть задача реализовать отправку сообщения по нажатию кнопки с сервера клиенту

258
Замена данных в JSON

Замена данных в JSON

Наконец-то разобрался с wwwnewtonsoft

205