2014-11-05 122 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); 
     }); 
    } 
} 
相关问题