5

I have the following FXML:

<BorderPane fx:controller="mypackage.MainStage" id="BorderPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2">
  <bottom>
    <ToolBar>
      <items>
        <Slider id="slider" prefWidth="443.0" />
        <Label text="Record:" />
        <TextField prefWidth="46.0" />
        <Label text=" of " />
        <Label id="totalLabel" text="0" />
      </items>
    </ToolBar>
  </bottom>
  <center>
    <Pane id="mainPane" prefHeight="200.0" prefWidth="200.0" />
  </center>
  <top>
    <ToolBar>
      <items>
        <Button mnemonicParsing="false" text="Load more" />
      </items>
    </ToolBar>
  </top>
</BorderPane>

and the following controller code:

public class MainStage implements Initializable {

    @FXML
    private Pane mainPane;

    @FXML
    private Label totalLabel;

    @Override
    public void initialize(URL location, ResourceBundle resources) {
        totalLabel.setText("245");
    }

}

and the following application code

public class MyClass extends Application
{

    @Override
    public void start(Stage stage) throws Exception {

        Parent root = FXMLLoader.load(getClass().getResource("MainStage.fxml"));

        Scene scene = new Scene(root);

        stage.setTitle("MyClass");
        stage.setScene(scene);
        stage.show();


    }

    public static void main( String[] args )
    {
        launch(args);
    }


}

If I set breakpoint to initialize() I see it is called, but member is null.

Why isn't it injected?

Suzan Cioc
  • 29,281
  • 63
  • 213
  • 385

1 Answers1

8

Because I used id while was to use fx:id tag.

Suzan Cioc
  • 29,281
  • 63
  • 213
  • 385