2013-11-20 3 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 тег.