JAVA Проблема с доступом к методам из другого класса - PullRequest
0 голосов
/ 07 октября 2018

Здравствуйте, у меня проблема с двумя моими уроками.Первый - это TopMenuIconsController со многими метками, второй - CheatPaneController с контроллерами hmmm, что-то вроде MVC.Я хочу, чтобы внутри CheatPane был вызов refreshGui из TopMenu, но я всегда получаю Nullpointer

public class CheatPaneController {

@FXML public AnchorPane cheatPane;
@FXML public Label cmdHistory;
@FXML public TextField cmdTextField;

private String appInput;
private ArrayList<String> outPut = new ArrayList<>();
private String[] part = new String[3];

private boolean checkCmd() {
    boolean foo = false;

    switch (part[0]) 

        case "add_cash":
            System.out.println("Cash + " + part[1]);
            outPut.add(appInput);
            Bank.setCash(Bank.getCash() + Double.parseDouble(part[1]));
            new TopMenuIconsController();
            TopMenuIconsController.topMenuIconsController.refreshGui();
            foo = true;
            break;





public class TopMenuIconsController implements Initializable {


@FXML public ImageView avatarTopMenuIcons;
@FXML public Label levelTopMenuIcons;
@FXML public Label cashTopMenuIcons;
@FXML public Label cashInBankTopMenuIcons;
@FXML public Label nameTopMenuIcons;
@FXML public AnchorPane topMenuIcon;
@FXML public ProgressBar expBarTopMenuIcons;
@FXML public ProgressBar energyBarTopMenuIcons;
@FXML public ProgressBar healthBarTopMenuIcons;
@FXML public Label presentExpTopMenuIcons;
@FXML public Label expToNextLevelTopMenuIcons;
@FXML public Label hpTopMenuIcons;
@FXML public Label maxHpTopMenuIcons;
@FXML public Label eneTopMenuIcons;
@FXML public Label maxEneTopMenuIcons;
@FXML public ProgressBar hungerBarTopMenuIcons;
@FXML public Label presentHungerTopMenuItems;


public static TopMenuIconsController topMenuIconsController;

public TopMenuIconsController() {
    this.topMenuIconsController=this;

}


@Override
public void initialize(URL location, ResourceBundle resources) {
    PlayerModel playerModel = new PlayerModel();
    BankModel bankModel = new BankModel();
    StatsModel statsModel = new StatsModel();

    playerModel.loadPlayerFromDB(NamePaneController.counter);
    bankModel.loadBankFromDB(NamePaneController.counter);
    statsModel.loadFromDB(NamePaneController.counter);


    refreshGui();
}

void refreshGui() {
    double foo=0;

    nameTopMenuIcons.setText(Player.getName());
    levelTopMenuIcons.setText(String.valueOf(Player.getLevel()));
    Image image = new Image(String.valueOf(Player.getAvatar()));
    avatarTopMenuIcons.setImage(image);

    cashTopMenuIcons.setText(String.valueOf(Bank.getCash()));
    cashInBankTopMenuIcons.setText(String.valueOf(Bank.getCashInBank()));

    foo=(double) Stats.getHunger()/Stats.getMaxHunger();
    foo=0.63;
    hungerBarTopMenuIcons.setProgress(foo);
    presentHungerTopMenuItems.setText(String.valueOf((int)(foo*100))+"%");

    foo=(double)Stats.getEnergy()/Stats.getMaxEnergy();
    energyBarTopMenuIcons.setProgress(foo);
    eneTopMenuIcons.setText(String.valueOf(Stats.getEnergy()));
    maxEneTopMenuIcons.setText(String.valueOf("/  " + Stats.getMaxEnergy()));

    foo=(double)Stats.getHealth()*100/Stats.getMaxHealth();
    healthBarTopMenuIcons.setProgress(foo);
    hpTopMenuIcons.setText(String.valueOf(Stats.getHealth()));
    maxHpTopMenuIcons.setText(String.valueOf("/  " + Stats.getMaxHealth()));

    foo=(double)Stats.getExperience()*100/Stats.getMaxExperience();
    expBarTopMenuIcons.setProgress(foo);
    presentExpTopMenuIcons.setText(String.valueOf(Stats.getExperience()));
    expToNextLevelTopMenuIcons.setText(String.valueOf("/  " + Stats.getMaxExperience()));
    System.out.println("w8 1");
    try {
        Thread.sleep(2500);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    System.out.println("w8 2");

Я использовал такую ​​статью

, но, вероятно, у меня неправильное мышление.Не могли бы вы сказать мне, как я должен сделать?

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