2017-01-23 3 views
-1

Nous apprenons JavaFX et je n'étais pas dans cette leçon! J'essaye d'apprendre maintenant mais le problème est:comment obtenir cette méthode @override dans javaFX?

si j'ai écrit cette méthode d'init() avec un autre nom, que cette méthode ne fonctionne pas. J'ai vu que c'est un Override comment faire cette méthode Override facilement? Et quelqu'un peut-il me dire une source pour JavaFX?

Voici mes classes:

public class CounterModel { 

    private int counter = 0; 

    public int getCounter() { 
     return counter; 
    } 

    public void setCounter(int counter) { 
     this.counter = counter; 
    } 

    public void increase() { 
     counter++; 
    } 
} 

////////////////////////////////// ///////////////////////////////////////

package counter; 

import javafx.application.Application; 
import javafx.event.ActionEvent; 
import javafx.event.EventHandler; 
import javafx.geometry.Pos; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.control.Label; 
import javafx.scene.layout.BorderPane; 
import javafx.stage.Stage; 

public class CounterUI extends Application { 

    private Button clickme; 
    private Label output; 
    private static String PREFIX = "Number of Clicks: "; 
    private CounterModel model; 

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

    @Override 
    public void init() throws Exception { 
     model = new CounterModel(); 
     initButton(); 
     initLabel(); 
    } 

    private void initButton() { 
     clickme = new Button("Click Me!"); 
     clickme.setPrefWidth(100); 
     clickme.setPrefHeight(50); 
     clickme.setOnAction(new EventHandler<ActionEvent>() { 
      @Override 
      public void handle(ActionEvent arg0) { 
       model.increase(); 
       output.setText(PREFIX+model.getCounter()); 
      }} 
     ); 
    } 

    private void initLabel() { 
     output=new Label(PREFIX+model.getCounter()); 
    } 

    @Override 
    public void start(Stage primaryStage) throws Exception { 
     primaryStage.setTitle("Click to Count"); 
     BorderPane root = new BorderPane(); 
     BorderPane.setAlignment(output, Pos.CENTER); 
     root.setCenter(clickme); 
     root.setBottom(output); 
     primaryStage.setScene(new Scene(root,300,250)); 
     primaryStage.show();   
    } 
} 
+0

"si j'ai écrit cette méthode init() avec un autre nom, cette méthode ne fonctionne pas". Alors n'essayez pas de changer le nom. –

+0

@meert Si vous substituez quelque chose de la bibliothèque standard java, vous devriez pouvoir trouver au moins des informations de base sur ce qu'il fait dans le javadoc https://docs.oracle.com/javase/8/javafx/api/ javafx/application/Application.html # init-- – fabian

+0

merci! @Fabien – meert

Répondre