2013-11-20 43 views
4

我有以下FXML爲什麼不在JavaFX控制器中注入成員?

<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> 

和下面的控制器代碼:

public class MainStage implements Initializable { 

    @FXML 
    private Pane mainPane; 

    @FXML 
    private Label totalLabel; 

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

} 

和下面的應用程序代碼

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); 
    } 


} 

如果我設置斷點initialize()我看到它是叫,但成員是null

爲什麼不注射?

回答

6

因爲我用id而使用fx:id標籤。