I upgraded from javafx 8 b109 to b116 and my FXML controller class has the injected variables as null when it initializes. I tried it with the sample netbeans fxml app.
@FXML
private static Label label;
@Override
public void initialize(URL url, ResourceBundle rb) {
label.setText("static test");
}
The problem is with the static keyword, remove that and it works. It was working fine in b109 with static variables. When writing my app initially, I figured static made sense. They're created when the application loads and there's only ever one copy of the scene.
Is there a way around this without rewriting a thousand lines of code that use static access?
Anyway I refactored everything and it wasn't as hard as I thought. I spent about half the time refactoring as I did searching for a solution.
I'll leave the question in case any other poor souls have the same problem.
Thank you very much for documenting this issue. Since last night, I try to fix it. Like you I guessed that the injected variables are null and could at finally shape my question to query the web for a solution. I found your entry here.
For this problem I suggest a quick dirty solution, I removed the static keyword from the declaration of original variable name at the same time I declared a static equivalent of it inserting a _ character at the end of the original name. In initialize() I've copied the injected objects into the static counterparts without having to refactor all my static inner classes and methods.