2014-11-05 68 views
0

我想設置在從開始使用JavaFX一個TextArea一文中,我用這個代碼在構造函數:如何在構造函數中設置JavaFX中的TextArea文本?

public class Myclass implements Initializable{ 
    @FXML TextArea txta; 
    @FXML Button btn; 
    String msg; 
    Myclass(){ 
     msg="Hello World"; 
     txta.setText(msg);//This line is my setter. 
    } 
    @Override 
    public void initialize(URL location, ResourceBundle resources) { 
     btn.setOnAction(new EventHandler<ActionEvent>() { 
      @Override 
      public void handle(ActionEvent event) { 
       msg=msg+"\nHallo Again!!"); 
       txta.setText(msg); 
      } 
     }); 
    } 

然後FXML不顯示,但是當我提出意見二傳手路線,FXML節目一般。 請幫忙,我該如何解決這個問題?

+0

您還沒有初始化的文本區域。在構造函數中設置文本之前添加它 – Nabin 2014-11-05 08:20:05

+0

如何在構造函數之前初始化此TextArea? – Arash 2014-11-05 08:23:11

回答

1

你的類是一個控制器,它不需要構造函數。所有初始設置都可以在initialize方法中完成。你可以找到here的基本教程。

你的文本區域txta將正確初始化(這就是爲什麼它有一個@FXML註釋),所以這將是不夠的:

public class Myclass implements Initializable{ 

    @FXML private TextArea txta; 
    @FXML private Button btn; 
    private String msg; 

    @Override 
    public void initialize(URL url, ResourceBundle rb) { 

     msg="Hello World"; 
     txta.setText(msg); 

     btn.setOnAction(e->{ 
      msg=msg+"\nHallo Again!!"; 
      txta.setText(msg); 
     }); 
    } 
} 
相關問題